我们正在用curl实现api。 我们发送xml请求并获取xml响应。 有些案例随机我们没有收到任何回复。 当我们与api提供商协调时,他们告诉我们服务器上没有请求,如果有空白响应。
我们如何知道,它没有打到api提供程序服务器。 有没有标题回复?
答案 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);
也可以提供帮助