>  기사  >  백엔드 개발  >  Go에서 cURL의 쿠키 기반 위치를 에뮬레이트하는 방법은 무엇입니까?

Go에서 cURL의 쿠키 기반 위치를 에뮬레이트하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-05 07:26:02372검색

How to Emulate cURL's Cookie-Based Location Following in Go?

Go에서 CURL의 쿠키 기반 위치 추적

문제:

리디렉션을 수신할 때(HTTP 코드 302) 응답에 쿠키가 포함된 경우 Go 클라이언트가 수신된 쿠키를 활용하면서 어떻게 새 위치를 따라갈 수 있습니까?

답변:

Go 1.1 이상에서는 net/http/cookiejar 패키지는 이에 대한 솔루션을 제공합니다.

<code class="go">import (
    "golang.org/x/net/publicsuffix"
    "io/ioutil"
    "log"
    "net/http"
    "net/http/cookiejar"
)

func main() {
    options := cookiejar.Options{
        PublicSuffixList: publicsuffix.List,
    }
    jar, err := cookiejar.New(&options)
    if err != nil {
        log.Fatal(err)
    }
    client := http.Client{Jar: jar}
    resp, err := client.Get("http://dubbelboer.com/302cookie.php")
    if err != nil {
        log.Fatal(err)
    }
    data, err := ioutil.ReadAll(resp.Body)
    resp.Body.Close()
    if err != nil {
        log.Fatal(err)
    }
    log.Println(string(data))
}</code>

이 코드 조각은 수신된 쿠키를 저장하는 쿠키 jar(jar)를 생성하여 CURL의 쿠키 기반 위치 추적 동작을 효과적으로 에뮬레이트합니다. 클라이언트가 리디렉션을 따르면 요청과 함께 저장된 쿠키를 전송하여 적절한 권한으로 새 위치에 액세스할 수 있습니다.

위 내용은 Go에서 cURL의 쿠키 기반 위치를 에뮬레이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.