【问题标题】:php curl response blank randomlyphp curl响应随机空白
【发布时间】:2015-05-14 08:45:52
【问题描述】:

我们正在使用 curl 实现 api。 我们发送 xml 请求并获得 xml 响应。 一些随机的案例我们没有收到任何回复。 当我们与 api 提供者协调时,他们告诉那里的服务器没有请求命中,以防空白响应。

我们怎么知道,它不会在 api 提供者服务器上命中。 是否有任何标头响应?

【问题讨论】:

  • 使用 Wireshark 之类的数据包嗅探工具查看是否有流量流出,然后您还将查看是否收到 ACK 回复
  • curl_error 和 currl_errno 如果 errno != 0 保存它,看看会发生什么
  • @jaques 抱歉,我们无法在服务器级别进行管理。

标签: php networking curl


【解决方案1】:

一些故障排除 cURL 选项:

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 100);
curl_setopt($ch, CURLOPT_TIMEOUT,100);
curl_setopt($ch, CURLOPT_FAILONERROR,true);
curl_setopt($ch, CURLOPT_ENCODING,"");
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_HEADER, true);

获得结果

$data = curl_exec($ch);
if (curl_errno($ch)){
    $data .= 'Retreive Base Page Error: ' . curl_error($ch);
}
else {
$skip = intval(curl_getinfo($ch, CURLINFO_HEADER_SIZE)); 
$responseHeader = substr($data,0,$skip);
$info = curl_getinfo($ch);
$requestHeader = $info['request_header'];
$info = var_export($info,true);
echo "<pre>$requestHeader \n\n $responseHeader\n\n $info \n $data";

【讨论】:

    【解决方案2】:

    你可以得到curl错误和errorno。使用这个

    var_dump(curl_errno($ch));
    var_dump(curl_error($ch));
    

    【讨论】:

    • 我们在日志中添加这个。
    【解决方案3】:

    您需要添加一些代码来处理响应 我不知道你的代码是什么样子的,但它可能就这么简单

    // add this line before curl_exec
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  
    
    $response = curl_exec($curl);
    
    $status = curl_getinfo($curl);
    // do this before closing curl connection
    curl_close($curl);  
    

    这里有一些关于 curl_getinfo 的更多细节 http://php.net/manual/en/function.curl-getinfo.php

    【讨论】:

      【解决方案4】:

      添加到您的 curl 查询中:

      curl_setopt($ch, CURLOPT_VERBOSE, 1);
      curl_setopt($ch, CURLOPT_HEADER, 1);
      

      curl 会更详细

      curl_getinfo($ch);
      

      也有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-08-18
        • 2012-11-02
        • 1970-01-01
        • 1970-01-01
        • 2016-01-17
        • 1970-01-01
        • 2013-05-28
        相关资源
        最近更新 更多