我正在尝试使用cURL(和python-requests)从内部网站检索信息。我试过了
curl -v -u "username:password" https://internalwebsite.com/
但是我一直收到以下错误(python-requests也有类似的错误)
curl: (56) Received HTTP code 502 from proxy after CONNECT.
以下是整个错误打印的图像。
我可以使用浏览器访问该链接,如果我查看浏览器开发人员选项的网络选项卡下的请求,并将请求复制为cURL。我得到了
curl "https://internalwebsite.com/" -H "Host: myhosthere" -H "User-Agent: some user agent here" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" -H "Accept-Language: en-US,en;q=0.5" --compressed -H "Connection: keep-alive" -H "Upgrade-Insecure-Requests: 1" -H "Authorization: Basic somebase64stringhere"
但这也会导致与以前相同的错误。现在我知道确切的解决方案可能很难找到,我只想在向IT团队询问他们可能不会使用的工具之前收集更多信息。 39;支持
基本上我想知道,卷曲请求与服务器端的浏览器有什么不同?尽管使用了浏览器的相同用户代理,但链接(Rest API)通过浏览器完全正常工作,但不能通过curl工作。
有一个"传出"我需要访问互联网的代理。是否还有一个"传入代理"我可能需要连接才能通过curl请求访问内部网站?内部网站只能在公司网络内访问,我的所有cURL请求都是在公司网络内部进行的。似乎我的浏览器在网络上验证了但不是cURL?
更新:
有关确切的解决方案,请参阅接受答案下方的评论。
答案 0 :(得分:1)
curl找到一个环境变量,告诉它使用代理,以便它连接到那个并在那里发出CONNECT
,然后得到502 ...
如果要禁用此命令行的代理,请执行以下操作之一:
-x ""
--noproxy
指定代理不应用于*_proxy
某事物)NO_PROXY
环境变量