我正在对web服务进行正常的curl调用,并通过
获取返回的HTTP代码$code = curl_getinfo ($ch, CURLINFO_HTTP_CODE);
它确实将$ code返回给200 - 这很好。 但是现在从一周开始记录curl调用,很少有人调用同一个没有返回任何东西的web服务!所以基本上我把$ code作为空白。
有人可以告诉我在这些情况下应该出现什么问题,以及是否可以调试更多!?
谢谢, Tanmay
-----------------------更新----------------------- -
感谢大家的信息。是的我也在想同样的事情,它没有到达服务器。我将更新我的代码以获取curl_error&& curl_errno并会尽快更新你们。
再次感谢。
----------------------更新2 ----------------------- ---------------------------------- 我更新了我的代码以返回错误号7 - 无法连接到主机。 我确实记录了所有curl调用,所以基本上大约90-98%的curl调用执行良好。但只有1-2%的卷曲调用无法找到主机!谁能告诉我可能是什么原因?以及如何防止它?
再次感谢, Tanmay
答案 0 :(得分:4)
如果cURL HTTP代码没有返回任何内容(也称为“0”),则表示cURL操作由于某种原因失败。捕获日志中的curl_error
以及它可能会让您更深入了解这些情况(如果它们再次发生)将是有益的。
答案 1 :(得分:0)
当您记录它时,检查它是否为空白,如果是,请使用此功能记录更多
http://www.php.net/manual/en/function.curl-getinfo.php
我的猜测是它无法到达服务器。
答案 2 :(得分:0)
您无法从失败的请求中检索curl_getinfo
。检查curl_exec
的结果,以确定是否已执行实际的HTTP请求。
连接超时或任何类似的是“失败的请求”。在这种情况下,curl_exec
返回FALSE(如curl_exec Manual中所述)。
答案 3 :(得分:0)
我的猜测是,这是一种没有返回HTTP头的情况 - 即请求不成功。也许服务器的互联网访问已经关闭,或者由于某些其他原因无法访问。
如果查看curl_getinfo
docs,建议检查示例中是否发生了错误:
if(!curl_errno($ch))
{
$info = curl_getinfo($ch);
echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url'];
}