curl - 对内部网站的 curl 请求
问题描述
我正在尝试使用 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 团队询问他们可能不支持的工具之前收集更多信息。
基本上我想知道,curl 请求与服务器端的浏览器有何不同?尽管使用了与我的浏览器相同的用户代理,但链接(Rest API)通过浏览器工作得非常好,但不能通过 curl。
我需要一个“传出”代理来访问互联网。为了通过 curl 请求访问内部网站,是否还需要连接“传入代理”之类的东西?内部网站只能从公司网络内访问,我所有的 cURL 请求都是从公司网络内发出的。似乎我的浏览器在网络上通过了身份验证,但不是 cURL?
更新:
有关确切的解决方案,请参阅已接受答案下方的评论。
解决方案
curl 找到一个告诉它使用代理的环境变量,因此它连接到该代理并在CONNECT
那里发出一个,然后返回 502...
如果要禁用此命令行的代理,请执行以下操作之一:
- 利用
-x ""
- 用于
--noproxy
指定不应使用代理的域 - 删除环境变量(
*_proxy
东西) - 将此域添加到
NO_PROXY
环境变量
推荐阅读
- java - 与未在 Active Directory 中列出的用户建立 LDAP 连接
- python - 如何在 Scrapy 中共享 cookie
- angular - Angular ngIf 仅显示数组中的唯一值而不使用管道,因为这不是一个好习惯
- bootstrap-4 - 引导程序 4 sass 的软件包?
- ruby - 当帖子或帖子为空或为零时,ActiveModel 序列化程序会忽略根键
- html - 同一行图像下的左右文本?
- javascript - 是否将模块中的功能导出到另一个模块中?
- c# - UWP,我的应用程序在构建时因图像路径而崩溃,但是当我在调试器上运行它时它工作正常
- jenkins - 构建步骤“执行 shell”在超时后将构建标记为失败
- ios - 尝试使用 CocoaPods“WeScan”,但我不断收到“No such Module 'WeScan'”错误