登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-11 20:00:35 289浏览 收藏

本篇文章向大家介绍《Golang 和 Python 执行 http 请求的方法之间有根本区别吗?》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

这是我的问题:在 go 中与在 python 中执行相同的请求不会返回相同的 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]}:[某种令牌]”


解决方案


我已经在本地环境中尝试了您的代码,它工作得很好:

$ 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

以上就是《Golang 和 Python 执行 http 请求的方法之间有根本区别吗?》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>