2013-08-24 29 views
14

Trong trường hợp phản hồi yêu cầu http là chuyển hướng (http mã 302) bằng cookie,Golang: cách theo dõi vị trí với cookie

cách bạn có thể hướng dẫn ứng dụng khách đi theo vị trí mới bằng cookie đã được nhận?

trong CURL, điều này có thể dễ dàng đạt được bằng cách thiết lập các khách hàng với:

COOKIEFILE = "" 
AUTOREFERER = 1 
FOLLOWLOCATION = 1 

cách bạn có thể làm điều đó trong Go?

Trả lời

23

Với Go 1.1, bạn có thể sử dụng net/http/cookiejar cho điều đó.

Dưới đây là một ví dụ làm việc:

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

Cảm ơn rất nhiều! Nó hoạt động khi sử dụng một khách hàng với một cookiejar! –

Các vấn đề liên quan