php curl响应随机空白

时间:2015-05-14 08:45:53

标签: php networking curl

我们正在用curl实现api。 我们发送xml请求并获取xml响应。 有些案例随机我们没有收到任何回复。 当我们与api提供商协调时,他们告诉我们服务器上没有请求,如果有空白响应。

我们如何知道,它没有打到api提供程序服务器。 有没有标题回复?

4 个答案:

答案 0 :(得分:1)

你可以得到curl错误和errorno.Use this

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

答案 1 :(得分: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 :(得分:0)

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

一样简单
// 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

答案 3 :(得分:0)

添加到您的卷曲查询:

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

卷曲会更加冗长

curl_getinfo($ch);

也可以提供帮助