2013-08-24 86 views
14

如果一個HTTP請求的響應是帶有cookie的重定向(HTTP代碼302),Golang:如何遵循的位置,餅乾

你怎麼能指導你進入客戶按照新的位置與Cookie已收到?

COOKIEFILE = "" 
AUTOREFERER = 1 
FOLLOWLOCATION = 1 

你怎麼能做到這一點圍棋:

在捲曲

,這可以很容易地通過設置客戶端實現的?

回答

23

對於Go 1.1,您可以使用net/http/cookiejar

這裏是一個工作示例:

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

非常感謝!它適用於使用cookiejar的客戶端! –