2010-12-22 53 views
7

我做的web服務正常捲曲電話,我通過如果HTTP CODE的curl getinfo沒有返回代碼?

$code = curl_getinfo ($ch, CURLINFO_HTTP_CODE); 

搶返回HTTP代碼它返回我$代碼爲200 - 這是很好的。 但是現在從一週記錄curl調用,那裏幾乎沒有任何調用返回任何東西的同一個webservice!所以基本上我得到$ code爲空白。

有人可以告訴我在這些情況下會出現什麼問題,如果可以更多地調試它!

感謝, Tanmay

-----------------------更新-------------- -----------

謝謝大家的信息。是的,我也在想,它沒有到達服務器。我會更新我的代碼,以獲得curl_error & & curl_errno並且會盡快更新你們。

再次感謝。

---------------------- Update 2 ---------------------- ----------------------------------- 我沒有更新我的代碼,返回錯誤號7 - couldn無法連接到主機。 我沒有記錄所有curl調用,所以基本上約90-98%的curl調用執行得很好。但只有1-2%的捲曲電話無法找到主機!誰能告訴我可能是什麼原因?以及我如何防止它?

再次感謝, Tanmay

回答

0

您無法從失敗的請求中檢索curl_getinfo。檢查curl_exec的結果以確定是否執行了實際的HTTP請求。

連接超時或類似的事情是「失敗的請求」。在這種情況下,curl_exec返回FALSE(如curl_exec Manual中所述)。

0

我的猜測是,這是一個沒有HTTP頭返回的情況 - 即請求失敗。服務器的互聯網訪問可能已關閉,或出於其他原因無法訪問。

如果你看看curl_getinfo docs,它建議檢查是否發生在本例中的錯誤:如果捲曲HTTP代碼返回任何

if(!curl_errno($ch)) 
{ 
    $info = curl_getinfo($ch); 

    echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url']; 
} 
4

(又名「0」),這意味着捲曲操作失敗因爲某些原因。在日誌中捕獲curl_error會很有幫助,並且可能會讓您更深入地瞭解這些情況(如果它們再次發生)。

PHP: curl_error