> 백엔드 개발 > Golang > cURL과 유사하게 쿠키를 유지하면서 Go 클라이언트가 HTTP 리디렉션을 따르도록 하려면 어떻게 해야 합니까?

cURL과 유사하게 쿠키를 유지하면서 Go 클라이언트가 HTTP 리디렉션을 따르도록 하려면 어떻게 해야 합니까?

Patricia Arquette
풀어 주다: 2024-11-05 21:24:02
원래의
315명이 탐색했습니다.

How can I make my Go client follow HTTP redirects while retaining cookies, similar to cURL?

Go: 쿠키 지원 리디렉션 처리

HTTP 요청이 쿠키와 함께 302 리디렉션을 트리거하면 Go 클라이언트가 새로운 리디렉션을 따르도록 하는 데 어려움을 겪을 수 있습니다. 쿠키를 유지하는 동안 위치. 이 기사에서는 널리 사용되는 명령줄 도구인 cURL에서 영감을 얻어 이 문제에 대한 솔루션을 탐색합니다.

문제 설명

Go에서 HTTP 리디렉션을 따르도록 클라이언트를 구성하는 방법은 무엇입니까? cURL의 설정과 유사하게 수신된 쿠키를 전달합니까?

해결 방법

Go 모듈 소개 net/http/cookiejar를 프로젝트에 추가하세요. 이 패키지는 효과적인 쿠키 처리 기능을 제공합니다. 다음은 사용법을 보여주는 예입니다.

package main

import (
    "golang.org/x/net/publicsuffix"
    "io/ioutil"
    "log"
    "net/http"
    "net/http/cookiejar"
)

func main() {
    // Create a CookieJar with customizable options.
    options := cookiejar.Options{
        PublicSuffixList: publicsuffix.List,
    }
    jar, err := cookiejar.New(&options)
    if err != nil {
        log.Fatal(err)
    }

    // Instantiate an HTTP Client with the CookieJar attached.
    client := http.Client{Jar: jar}

    // Execute an HTTP request that includes a cookie.
    resp, err := client.Get("http://dubbelboer.com/302cookie.php")
    if err != nil {
        log.Fatal(err)
    }

    // Read the response body.
    data, err := ioutil.ReadAll(resp.Body)
    resp.Body.Close()
    if err != nil {
        log.Fatal(err)
    }

    // Print the response body, which ideally contains unique information set by the PHP script on the server.
    log.Println(string(data))
}
로그인 후 복사

이 솔루션은 CookieJar를 활용하여 요청 간에 쿠키를 저장하고 전송함으로써 cURL의 기능을 에뮬레이트합니다. 클라이언트가 쿠키가 포함된 302 리디렉션을 발견하면 쿠키 기반 세션을 유지하면서 자동으로 새 위치를 따릅니다.

위 내용은 cURL과 유사하게 쿠키를 유지하면서 Go 클라이언트가 HTTP 리디렉션을 따르도록 하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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