Фундаментальные различия между методом Golang и Python для выполнения http-запросов? - PullRequest
0 голосов
/ 26 октября 2018

вот моя проблема: выполнение того же запроса в go, что и в python, не вернет одинаковые куки, даже если оба используют один и тот же метод 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)
}

Единственная разница - полное отсутствие cookie для golang, и я не знаю почему.Кто-нибудь сталкивался с этим раньше / знает, почему golang ведет себя по-другому?

Редактировать: в случае, если это актуально: отсутствует конкретный файл cookie: "urlgen =" {[ip: port]}: [токен какого-то рода] "

1 Ответ

0 голосов
/ 26 октября 2018

Я попробовал ваш код в моей локальной среде, и он прекрасно работает:

$ 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
...