对内部网站的卷曲请求
Curl requests to an internal website
我正在尝试使用 cURL(和 python-requests)从内部网站检索信息。我试过了
curl -v -u "username:password" https://internalwebsite.com/
但我不断收到以下错误(python-请求也出现类似错误)
curl: (56) Received HTTP code 502 from proxy after CONNECT.
这是打印出的整个错误的图像。
我可以使用浏览器访问 link,如果我在浏览器开发人员选项的网络选项卡下查看请求并将请求复制为 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"
但这也会导致与 before.Now 相同的错误 我知道可能很难找到对此的确切解决方案,我只是想在向 IT 团队询问工具之前收集更多信息他们可能不支持。
基本上我想知道,curl 请求与服务器端的浏览器有何不同?尽管使用与我的浏览器相同的用户代理,link(其余 API)在浏览器中绝对可以正常工作,但不能通过 curl。
我需要一个 "outgoing" 代理来访问互联网。是否还有 "incoming proxy" 之类的东西,我可能需要连接才能通过 curl 请求访问内部网站?内部网站只能从公司网络内部访问,我所有的 cURL 请求都是从公司网络内部发出的。似乎我的浏览器在网络上通过了身份验证,但没有通过 cURL?
更新:
有关确切的解决方案,请参阅已接受答案下方的评论。
curl 找到一个环境变量,告诉它使用代理,因此它连接到那个并在那里发出 CONNECT
,然后返回 502...
如果您想为此命令行禁用代理,请执行以下操作之一:
- 使用
-x ""
- 使用
--noproxy
指定代理不应用于的域
- 删除环境变量(
*_proxy
某事)
- 将此域添加到
NO_PROXY
环境变量
我正在尝试使用 cURL(和 python-requests)从内部网站检索信息。我试过了
curl -v -u "username:password" https://internalwebsite.com/
但我不断收到以下错误(python-请求也出现类似错误)
curl: (56) Received HTTP code 502 from proxy after CONNECT.
这是打印出的整个错误的图像。
我可以使用浏览器访问 link,如果我在浏览器开发人员选项的网络选项卡下查看请求并将请求复制为 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"
但这也会导致与 before.Now 相同的错误 我知道可能很难找到对此的确切解决方案,我只是想在向 IT 团队询问工具之前收集更多信息他们可能不支持。
基本上我想知道,curl 请求与服务器端的浏览器有何不同?尽管使用与我的浏览器相同的用户代理,link(其余 API)在浏览器中绝对可以正常工作,但不能通过 curl。
我需要一个 "outgoing" 代理来访问互联网。是否还有 "incoming proxy" 之类的东西,我可能需要连接才能通过 curl 请求访问内部网站?内部网站只能从公司网络内部访问,我所有的 cURL 请求都是从公司网络内部发出的。似乎我的浏览器在网络上通过了身份验证,但没有通过 cURL?
更新:
有关确切的解决方案,请参阅已接受答案下方的评论。
curl 找到一个环境变量,告诉它使用代理,因此它连接到那个并在那里发出 CONNECT
,然后返回 502...
如果您想为此命令行禁用代理,请执行以下操作之一:
- 使用
-x ""
- 使用
--noproxy
指定代理不应用于的域 - 删除环境变量(
*_proxy
某事) - 将此域添加到
NO_PROXY
环境变量