Golang和Python执行HTTP请求的方法之间的根本区别?

时间:2018-10-25 23:24:15

标签: python http go python-requests

这是我的问题:与python中一样,在go中执行相同的请求将不会返回相同的cookie,即使两者都在相同的端点上使用相同的http方法。这是我的python代码:

import requests
r = requests.get("https://instagram.com/paperclip")
for cooke in r.cookies:
    print(cooke)

这可以按预期工作,应将其视为控件。这是我的执行代码:

resp, err := http.Get("https://instagram.com/paperclip")
if err != nil {
    panic(err)
}

for _, cookie := range resp.Cookies() {
    fmt.Println(cookie.Name, cookie.Value)
}

唯一的区别是golang完全没有cookie,我不确定为什么。有没有人经历过这个/知道为什么golang的行为会有所不同?

编辑:在相关的情况下:缺少的特定cookie是“ urlgen =“ {[ip:port]}:[某种令牌]”

1 个答案:

答案 0 :(得分:0)

我已经在本地环境中尝试过您的代码,并且效果很好:

$ cat main.go 
package main

import (
    "fmt"
    "net/http"
)

func main() {
    resp, err := http.Get("https://instagram.com/paperclip")
    if err != nil {
        panic(err)
    }

    for _, cookie := range resp.Cookies() {
        fmt.Println(cookie.Name, cookie.Value)
    }

}

$ go run main.go 
urlgen {}:1gG5sj:plSKGgHYyLBefEhRrGVeZvPAs_M
mid W9MxTQAEAAGGiuN4IK97_H18ESVR
rur FRC
mcd 3
csrftoken LMddnPjpoVZB2p9X6bPJrGKWAzoMmMCO

$ go version
go version go1.11 darwin/amd64