2013-08-24 12 views
14

W przypadku, gdy odpowiedź na żądanie HTTP jest przekierowania (kod HTTP 302) z pliku cookie,Golang: Jak śledzić lokalizację pliku cookie

jak można poinstruować klienta Go podążać nową lokalizację pliku cookie który został przyjęty?

w Curl, można to łatwo osiągnąć poprzez ustalenie klientowi:

COOKIEFILE = "" 
AUTOREFERER = 1 
FOLLOWLOCATION = 1 

jak można to zrobić w Go?

Odpowiedz

23

W wersji 1.1 można użyć do tego celu net/http/cookiejar.

Oto przykład roboczych:

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

Thanks a lot! Działa, gdy używasz klienta z cookiejar! –

Powiązane problemy