2013-08-24 6 views
14

Falls die Antwort auf eine HTTP-Anforderung ist eine Umleitung (HTTP-Code 302) mit einem Cookie,Golang: Wie folgt Lage mit Cookie

wie können Sie Ihr Go-Client anweisen, den neuen Standort mit dem Cookie zu folgen das wurde empfangen?

in CURL, kann dies leicht, indem der Client mit erreicht werden:

COOKIEFILE = "" 
AUTOREFERER = 1 
FOLLOWLOCATION = 1 

, wie können Sie das tun in Go?

Antwort

23

Mit Go 1.1 können Sie dafür die net/http/cookiejar verwenden.

Hier ist ein funktionierendes Beispiel:

package main 

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)) 
} 
+0

Vielen Dank! Es funktioniert, wenn Sie einen Client mit einem Cookie verwenden! –