16

http リクエストへの応答が Cookie を使用したリダイレクト (http コード 302) の場合、

受信した Cookie を使用して新しい場所をたどるように Go クライアントに指示するにはどうすればよいでしょうか?

CURL では、クライアントを次のように設定することで簡単に実現できます。

 COOKIEFILE = ""
 AUTOREFERER = 1
 FOLLOWLOCATION = 1

Goでどうやってそれを行うことができますか?

4

1 に答える 1

32

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))
}
于 2013-08-24T02:50:22.993 に答える