【问题标题】:What is equivalent for "curl -v --noproxy localhost" in php?php中“curl -v --noproxy localhost”的等价物是什么?
【发布时间】:2015-10-06 08:32:35
【问题描述】:

我无法从 php curl localhost,但任何其他外部主机都可以正常工作。

我在 cmd 中尝试过“curl localhost”——它也没有用,但是忽略 localhost “curl -v --noproxy localhost”的代理——可以。

这个在 php 中的等价物是什么?

【问题讨论】:

    标签: php curl


    【解决方案1】:

    您可以尝试将代理设置为空字符串:

    curl_setopt($ch, CURLOPT_PROXY, '');
    

    另一种可能性是向您的环境变量“no_proxy”添加代理异常,但我不能 100% 确定它是否会影响 PHP:

    set no_proxy=127.0.0.1
    

    【讨论】:

    • curl_setopt($ch, CURLOPT_PROXY, ''); 为我工作,谢谢。
    • 我也有类似的问题。但是,此处提供的答案对我不起作用。奇怪的是,我有一个返回预期值的 php 脚本。但是,当我从 PHP 框架(CakePHP 2.0)内部调用它时,即使我没有设置任何代理或使用空字符串设置代理,它也会返回 503 错误。我会试着找出原因。
    【解决方案2】:

    我也遇到了同样的问题。我在一家位于代理后面的公司工作,因此我们需要在进行出站呼叫时为 curl 呼叫添加代理。但是,对于本地托管的网站,curl 调用失败了。

    对我有用的是这个(CURLOPT_NOPROXY does not affect in PHP 是提供链接的问题的更新部分):

    curl_setopt($curl, CURLOPT_NOPROXY, 'your-sitename-on-localhost');
    

    当它与 URL 中的站点名称匹配时,这将跳过代理。

    以前我收到 503,现在它在我的本地主机上返回正确的 200 状态代码。

    【讨论】:

    • 我必须添加更多内容,因为这方面的文档不多。不要尝试将此选项添加为curl_setopt_array(),但这不起作用。这必须在 curl_init() 调用之后和 curl_exec() 之前添加,仅使用 curl_setopt() 方法。我仍然不知道为什么会这样,但如果我找到答案会在这里更新。
    猜你喜欢
    • 1970-01-01
    • 2018-04-16
    • 2016-08-14
    • 2012-03-20
    • 1970-01-01
    • 2020-12-08
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多