2010-12-22 3 views
7

는 내가 웹 서비스에 대한 일반 컬 전화를하고, 그리고 난 그것은 200으로 나에게 $ 코드를 반환하지HTTP 코드의 curl getinfo가 코드를 반환하지 않으면?

$code = curl_getinfo ($ch, CURLINFO_HTTP_CODE); 

을 통해 리턴 HTTP 코드를 잡아 - 좋은이다. 그러나 일주일에 곱슬 곱슬 함 호출을 기록하면 아무 것도 반환하지 않은 동일한 웹 서비스에 대한 호출이 거의 없습니다! 그래서 기본적으로 $ code는 비어 있습니다.

누군가 그 시나리오에서 잘못 될 것임을 알려주고, 더 디버깅 할 수 있다면!?

감사합니다, Tanmay

----------------------- 업데이트 -------------- -----------

모두에게 감사드립니다. 예, 저는 서버에 도달하지 못하고 있다고 생각했습니다. curl_error를 얻기 위해 코드를 업데이트 할 예정입니다. & & curl_errno 곧 업데이트 될 것입니다.

다시 한번 감사드립니다.

---------------------- 업데이트 2 ---------------------- ----------------------------------- 오류 7을 반환하도록 코드를 업데이트했습니다. - couldn 호스트에 연결하지 마십시오. 모든 컬 호출을 기록 했으므로 기본적으로 90-98 %의 컬 호출이 양호하게 실행 중입니다. 그러나 컬 호출의 1-2 %만이 호스트를 찾을 수 없습니다! 아무도 나에게 이유가 무엇인지 말해 줄 수 있습니까? 어떻게 막을 수 있습니까?

다시 한 번 감사드립니다, Tanmay

답변

0

실패한 요청에서 curl_getinfo을 검색 할 수 없습니다. curl_exec의 결과를 확인하여 실제 HTTP 요청이 수행되었는지 확인하십시오.

연결 시간 초과 또는 이와 유사한 항목은 "실패한 요청"입니다. 이 경우 curl_exec은 FALSE를 반환합니다 (curl_exec Manual에 명시된대로).

0

내 생각에 이것은 HTTP 헤더가 반환되지 않은 상황, 즉 요청이 실패한 것 같습니다. 아마도 서버의 인터넷 액세스가 중단되었거나 액세스 할 수없는 다른 이유로 인해 당신이 curl_getinfo docs 보면

, 그것은 오류의 예에서 발생 여부를 확인 제안 : cURL을 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

관련 문제