2013-08-24 14 views
14

Nel caso in cui la risposta ad una richiesta HTTP è un reindirizzamento (codice HTTP 302) con un cookie,Golang: come seguire posizione con il biscotto

come è possibile istruire il vostro cliente Vai a seguire la nuova posizione con il cookie che è stato ricevuto?

in CURL, questo può essere raggiunto facilmente impostando il cliente con:

COOKIEFILE = "" 
AUTOREFERER = 1 
FOLLOWLOCATION = 1 

come si può farlo in Go?

risposta

23

Con Go 1.1 è possibile utilizzare il net/http/cookiejar per quello.

Ecco un esempio di lavoro:

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

Grazie mille! Funziona quando si usa un client con un cookiejar! –