【问题标题】:PHP cURL error: Could not resolve proxyPHP cURL 错误:无法解析代理
【发布时间】:2012-06-24 01:46:48
【问题描述】:

我正在尝试使用 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 的很多地方都在库中,它会是绕过并将这条线侵入所有这些线是一种痛苦(更不用说难以维护了)。我宁愿找到根本原因并在那里修复它。

如果有帮助的话,到目前为止,我只遇到过 POST 请求。命令行 cURL(来自 Git bash 提示符)工作正常。这些调用在我们的开发机器上也能正常工作,所以它似乎是我机器特有的。

如果我需要应用上述技巧,我会,但我想在我诉诸之前,我会问 SO 的好人 - 有没有我遗漏的地方可以配置代理的使用?如果我忘记添加任何其他有用的信息,请告诉我。

【问题讨论】:

    标签: php curl proxy


    【解决方案1】:

    cURL 依赖于代理设置的环境变量。您可以通过“高级系统设置”在 Windows 上进行设置。

    您需要设置和/或更改以获得最佳控制的变量是“http_proxy”、“HTTPS_PROXY”、“FTP_PROXY”、“ALL_PROXY”和“NO_PROXY”。

    但是,如果您只是想完全避免使用代理,您可以创建系统变量 http_proxy 并将其设置为 localhost,然后另外创建系统变量 NO_PROXY 并设置它到*,它将告诉 cURL 避免对任何连接使用代理。

    在任何情况下,请务必重新启动任何命令窗口以强制识别系统环境变量的更改。

    [source - cURL Manual]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      • 2015-01-26
      相关资源
      最近更新 更多