Go\의 `http.Client`에서 리디렉션 후 최종 URL을 얻는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-16 18:07:02
원래의
258명이 탐색했습니다.

How to Get the Final URL After Redirects in Go's `http.Client`?

Http.Go에서 리디렉션 후 최종 URL 추출

http.NewRequest를 사용하여 HTTP 요청을 수행하는 동안 다음이 필요할 수 있습니다. 리디렉션 후 최종 URL에서 쿼리 문자열을 추출합니다. 응답 객체는 본질적으로 최종 URL에 대한 액세스를 제공하지 않습니다.

리디렉션 후 URL을 검색하려면:

  1. CheckRedirect 콜백 내에서 익명 함수를 생성합니다.
  2. 익명 함수 내에서 lastUrlQuery 변수를 리디렉션된 요청의 RequestURI()로 설정합니다.
  3. 리디렉션을 허용하려면 nil을 반환합니다.

다음은 이 접근 방식을 보여주는 코드 조각입니다.

req, err = http.NewRequest("GET", URL, nil)
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", lastUrlQuery)
로그인 후 복사

이 기술을 사용하면 모든 리디렉션이 발생한 후 최종 URL을 캡처할 수 있으므로 최종 목적지에서 쿼리 문자열 및 기타 정보에 액세스할 수 있습니다.

위 내용은 Go\의 `http.Client`에서 리디렉션 후 최종 URL을 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿