Heim > Artikel > Backend-Entwicklung > Wie kann ich die Cookie-basierte Standortverfolgung von cURL in Go emulieren?
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>
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!