Heim > Backend-Entwicklung > Golang > Wie kann ich die Cookie-basierte Standortverfolgung von cURL in Go emulieren?

Wie kann ich die Cookie-basierte Standortverfolgung von cURL in Go emulieren?

DDD
Freigeben: 2024-11-05 07:26:02
Original
471 Leute haben es durchsucht

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

Emulieren der Cookie-basierten Standortverfolgung von CURL in Go

Problem:

Beim Empfang einer Weiterleitung (HTTP-Code 302) Wie kann ein Go-Client mit einem begleitenden Cookie in der Antwort dem neuen Standort folgen und dabei das empfangene Cookie verwenden?

Antwort:

In Go 1.1 und höher wird die Das Paket net/http/cookiejar bietet hierfür eine Lösung:

<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>
Nach dem Login kopieren

Dieses Code-Snippet emuliert effektiv das Cookie-basierte Standortverfolgungsverhalten von CURL, indem es ein Cookie-Glas (Jar) erstellt, in dem das empfangene Cookie gespeichert wird. Wenn der Client der Weiterleitung folgt, sendet er das gespeicherte Cookie zusammen mit der Anfrage, sodass er mit den entsprechenden Berechtigungen auf den neuen Standort zugreifen kann.

Das obige ist der detaillierte Inhalt vonWie kann ich die Cookie-basierte Standortverfolgung von cURL in Go emulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage