我正在尝试使用PHP(版本5.3.12)从Windows Server 2008计算机发送cURL请求,并继续收到错误Could not resolve proxy: http=127.0.0.1; Host not found
。据我所知,我没有使用代理 - CURLOPT_PROXY
没有设置,我运行netsh winhttp show proxy
以确保没有系统范围的设置,我甚至检查我机器上的所有浏览器,确认没有配置为使用代理(以防万一这可能会产生影响)。我无法弄清楚为什么cURL坚持告诉我1)我正在使用代理服务器2)它无法连接到它。
我能够通过curl_setopt($curl, CURLOPT_PROXY, '');
明确禁用代理来解决错误,但这不是最好的解决方案 - 我使用cURL的许多地方都在库中,而且它' d是一种痛苦(更不用说可维护性),并将这条线破解成所有这些线。我宁愿找到根本原因并在那里修复它。
如果它有帮助,到目前为止,这只发生在POST请求中。命令行cURL(来自Git bash提示符)工作正常。这些调用也可以在我们的开发机器上正常工作,因此它似乎是我的机器特有的。
如果我需要应用上述黑客攻击,我会,但是在我使用之前我想过我会问那些优秀的人 - 我有什么遗漏可以配置使用代理吗?如果我忘记添加任何其他有用的信息,请告诉我。
答案 0 :(得分:1)
cURL依赖于代理设置的环境变量。您可以通过“高级系统设置”在Windows上设置这些。
为了获得最佳控制而需要设置和/或更改的变量是“http_proxy”,“HTTPS_PROXY”,“FTP_PROXY”,“ALL_PROXY”和“NO_PROXY”。
但是,如果您只是想完全避免使用代理,那么您可以放弃创建系统变量http_proxy
并将其设置为localhost
,然后另外创建系统变量{{ 1}}并将其设置为NO_PROXY
,这将告诉cURL避免使用代理进行任何连接。
在任何情况下,请务必重新启动任何命令窗口以强制识别系统环境变量的更改。