Heim >Backend-Entwicklung >Golang >Wie kann Gos CookieJar verwendet werden, um Weiterleitungen zu folgen und gleichzeitig Cookies beizubehalten?

Wie kann Gos CookieJar verwendet werden, um Weiterleitungen zu folgen und gleichzeitig Cookies beizubehalten?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-05 18:35:02932Durchsuche

How can Go's CookieJar be used to follow redirects while preserving cookies?

Nutzung der Cookiejar von Go, um Weiterleitungen mit Cookies zu folgen

Wenn eine HTTP-Anfrage zu einer 302-Weiterleitung führt, ist es wichtig, die von der erhaltenen Cookies beizubehalten Server für die nachfolgende Anfrage. In Go kann dies durch das Cookiejar-Paket erreicht werden, das eine bequeme Möglichkeit bietet, Weiterleitungen automatisch zu folgen und gleichzeitig Cookies beizubehalten.

In diesem Szenario besteht das Ziel darin, das Verhalten von CURL mit den folgenden Einstellungen zu emulieren:

  • COOKIEFILE = "": Schreiben von Cookies auf die Festplatte deaktivieren.
  • AUTOREFERER = 1: Referrer-Header automatisch festlegen.
  • FOLLOWLOCATION = 1: Weiterleitungen folgen.

Implementierung mit cookiejar

Mit Go 1.1 steht das Paket net/http/cookiejar zur Verfügung, um diese Aufgaben nahtlos zu erledigen. Hier ist ein Codebeispiel, das seine Verwendung demonstriert:

<code class="go">package main

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

func main() {
    // Configure the cookie jar.
    options := cookiejar.Options{
        PublicSuffixList: publicsuffix.List,
    }
    jar, err := cookiejar.New(&options)
    if err != nil {
        log.Fatal(err)
    }

    // Create an HTTP client with the cookie jar.
    client := http.Client{Jar: jar}

    // Make the request.
    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)
    }

    // Log the response.
    log.Println(string(data))
}</code>

In diesem Beispiel ist die Cookie-Jar so konfiguriert, dass sie der öffentlichen Suffixliste folgt und so eine ordnungsgemäße domänenbasierte Cookie-Verarbeitung gewährleistet. Der Client wird mit dem JAR erstellt und eine GET-Anfrage an die angegebene URL gestellt. Der Antworttext wird gelesen und protokolliert, was zeigt, dass das Cookie-Glas die Umleitung effektiv verarbeitet und das Cookie behält.

Das obige ist der detaillierte Inhalt vonWie kann Gos CookieJar verwendet werden, um Weiterleitungen zu folgen und gleichzeitig Cookies beizubehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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