php curl 响应随机空白
php curl response blank randomly
我们正在使用 curl 实施 api。
我们发送 xml 请求并得到 xml 响应。
一些随机案例我们没有收到任何回复。
当我们 co-ordinated 与 api 供应商合作时,他们告诉我们在空白响应的情况下没有请求命中那里的服务器。
我们怎么知道,它没有命中 api 提供商服务器。
有 header 回应吗?
你会得到卷曲错误和errorno.Use这个
var_dump(curl_errno($ch));
var_dump(curl_error($ch));
您需要添加一些代码来处理响应
我不知道你的代码是什么样子,但它可能就这么简单
// 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
添加到您的 curl 查询:
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl 会更冗长
curl_getinfo($ch);
也有帮助
一些 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";
我们正在使用 curl 实施 api。 我们发送 xml 请求并得到 xml 响应。 一些随机案例我们没有收到任何回复。 当我们 co-ordinated 与 api 供应商合作时,他们告诉我们在空白响应的情况下没有请求命中那里的服务器。
我们怎么知道,它没有命中 api 提供商服务器。 有 header 回应吗?
你会得到卷曲错误和errorno.Use这个
var_dump(curl_errno($ch));
var_dump(curl_error($ch));
您需要添加一些代码来处理响应 我不知道你的代码是什么样子,但它可能就这么简单
// 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
添加到您的 curl 查询:
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl 会更冗长
curl_getinfo($ch);
也有帮助
一些 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";