Go 使用 http.Get() 的奇怪的问题

2020-09-05 16:39:43 +08:00
 thefack

系统是 Win10,工具是 goland

使用 http.Get(url)读取一段文本时,在 goland 环境中点运行按钮可以获取到,但是 go build 后在在终端运行,就返回状态码 403

我知道 403 的意思,但是为什么在 goland 中正常,而 build 后就出问题?我添加代理后使用 fiddler 抓包,看到这两种方式的请求头是一样的啊,没有看到区别

请问大手子们,在 goland 中和在终端中运行有什么差别,导致的这种问题的?

1422 次点击
所在节点    Go 编程语言
6 条回复
Maboroshii
2020-09-05 16:54:08 +08:00
是不是终端有代理什么的
dcalsky
2020-09-05 16:55:44 +08:00
ssl
thefack
2020-09-05 16:58:02 +08:00
@Maboroshii 谢谢解答,刚才把 URL 写死成字符串当参数发现可以,应该是我用从终端读取输入的 URL 那部分代码有问题。谢谢你的解答
thefack
2020-09-05 17:04:48 +08:00
@dcalsky 谢谢解答,我发现问题所在了。使用 fmt.Scanln(&url)从终端输入时,接收的字符串的长度原来有限制,导致输入被截断了。。
aliipay
2020-09-05 20:03:25 +08:00
你这个 fiddler 一看不就知道的事情吗
learningman
2020-09-06 09:55:36 +08:00
@aliipay 如果程序不尊重系统代理,fiddler 抓不到的,还得上 wireshark

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/704485

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX