【问题标题】:PHP cURL Works on Fiddler but not on my serverPHP cURL 适用于 Fiddler 但不适用于我的服务器
【发布时间】:2014-09-16 14:31:09
【问题描述】:

所以我已经使用 fiddler 以及 Rest Console 和 Advanced Rest Console 对此进行了测试,一切正常,但是当我从 cURL 运行时,我收到连接超时错误或无法连接到主机。网址相同,标题相同,内容主体相同。我只是不明白。 编辑:如果没有在服务器上打开授权,代码就可以正常工作

在这里卡了将近 5 个小时,代码如下:

function getLicenses() {

    $license = new LicenseConnector();
    $curl    = curl_init();
    $headers = array(
        'Authorization: Bearer 12345...',
        'Content-Type:  application/x-www-form-urlencoded'
    );


    $myPost = 'RequestingAgency=Woo&AcctEmail=&LengthOfLic=365&Demo=on';
    curl_setopt_array( $curl, array(
        curl_setopt($curl, CURLOPT_URL, 'http://example.com/api/serialnumbers/getnewserial'),
        curl_setopt( $curl, CURLOPT_POST, 1 ),
        curl_setopt( $curl, CURLOPT_POSTFIELDS, $myPost ),
        curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 ),
        curl_setopt($curl, CURLOPT_HEADER, 1),
        curl_setopt($curl, CURLINFO_HEADER_OUT, true),
        curl_setopt( $curl, CURLOPT_HTTPHEADER, $headers )
    ) );

    $result  = curl_exec( $curl );
    $results = json_decode( $result );

    if ( curl_errno( $curl ) ) {
        echo 'error:' . curl_error( $curl );
    } else {

        echo $results;
    }
    curl_close( $curl );

}

然后我运行函数...

【问题讨论】:

  • 它输出什么?
  • 顺便说一句,如果我在服务器上关闭授权,代码就可以正常工作。
  • 这是输出:“错误:无法连接到主机”
  • 做过任何基本的调试,比如尝试从同一台机器的命令行远程登录到端口 80? “超时”意味着您的数据包在某处丢失。例如两端都有防火墙。
  • 不,我没有尝试过,但是相同的代码在没有授权的情况下工作......而且,这是从共享主机运行的,所以我没有 shell 访问权限,在我们的服务器上正在尝试命中我们有允许来源:*

标签: php curl http-headers


【解决方案1】:

您确定 cUrl 已启用并安装在您的服务器上吗?

这是一个操作方法: PHP CURL Enable Linux

【讨论】:

  • 是的,如果没有在服务器上启用授权,它仍然可以正常工作。
  • 对不起,我没有注意到这条评论:/
  • 别担心,有什么想法吗?
【解决方案2】:

所以,我重写了我的代码,一切正常……这不是很正常吗?

$ch = curl_init();
    $headers = array(
        "Authorization: Bearer $auth",
    );
    curl_setopt($ch, CURLOPT_URL,"http://example.com/api/serialnumbers/getnewserial2");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_POSTFIELDS,
        "RequestingAgency=Woo&AcctEmail=&LengthOfLic=365&Demo=on");


    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $server_output = curl_exec ($ch);

    curl_close ($ch);

    echo $server_output;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-05
    • 2015-01-21
    • 2011-09-09
    • 2013-10-27
    • 2017-06-03
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    相关资源
    最近更新 更多