Go의 http 패키지에서는 문자열 쿼리를 위해 여러 http 요청을 만드는 것이 일반적입니다. 그러나 최종 URL에서 이러한 문자열을 추출하는 것은 어려울 수 있으며, 특히 리디렉션이 발생할 경우 더욱 그렇습니다. 안타깝게도 응답 개체에는 이 최종 URL에 관한 정보가 부족합니다.
리디렉션 방지 옵션이 있음에도 불구하고 이 문서에서는 요청이 이루어진 후 URL을 얻는 데 중점을 둡니다. 이를 달성하려면:
다음은 코드 조각 예시입니다.
import ( "fmt" "log" "net/http" ) func main() { req, err := http.NewRequest("GET", "URL", nil) if err != nil { log.Fatal(err) } cl := http.Client{} var lastUrlQuery string cl.CheckRedirect = func(req *http.Request, via []*http.Request) error { if len(via) > 10 { return errors.New("too many redirects") } lastUrlQuery = req.URL.RequestURI() return nil } resp, err := cl.Do(req) if err != nil { log.Fatal(err) } fmt.Printf("last url query is %v\n", lastUrlQuery) }
이 코드는 요청을 리디렉션하고 최종 코드를 저장합니다. lastUrlQuery의 URL 쿼리입니다.
위 내용은 Go에서 HTTP 리디렉션 후 최종 URL을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!