Я делаю обычный вызов curl к webservice, и я получаю код HTTP возврата через
$code = curl_getinfo ($ch, CURLINFO_HTTP_CODE);
Он возвращает мне $ code как 200 – это хорошо. Но регистрировать звонки завитки сейчас с недели, там, где мало звонков на тот же веб-сервис, который ничего не возвращал! так что в основном я получаю $ code пустым.
Может кто-нибудь сказать мне, что должно быть неправильно в этих сценариях, и если можно отладить его больше !?
Спасибо, Танмай
———————–Обновить————————-
Спасибо всем за информацию. Да, я тоже думал о том, что не дошел до сервера. Я обновлю свой код, чтобы получить curl_error && curl_errno и скоро обновит вас.
Еще раз спасибо.
———————- Обновление 2 ————————– ——————————- Я обновил свой код, чтобы вернуть мне ошибку № 7 – не удалось подключиться к хосту , Я зарегистрировал все завитки, так что в основном около 90-98% звонков завитка выполняется хорошо. Но только 1-2% вызовов завитка не могут найти хоста! Может ли кто-нибудь сказать мне, что может быть причиной? и как я могу это предотвратить?
Еще раз спасибо, Tanmay
Если код cURL HTTP ничего не возвращает (aka '0'), это означает, что по какой-то причине операция cURL завершилась неудачно. Было бы полезно захватить curl_error
в ваших журналах, а также дать вам больше информации о том, что произошло в этих случаях (если они повторяются).
PHP: curl_error
Когда вы регистрируете его, проверьте, если он пуст, если он есть, запишите больше, используя эту функцию
http://www.php.net/manual/en/function.curl-getinfo.php
Я предполагаю, что он не сможет добраться до сервера.
Вы не можете получить curl_getinfo
из curl_getinfo
запроса. Проверьте результат curl_exec
чтобы определить, был ли выполнен фактический запрос HTTP.
Тайм-аут соединения или что-то подобное – это «неудачный запрос». В этом случае curl_exec
возвращает FALSE (как указано в руководстве curl_exec ).
Я предполагаю, что это ситуация, когда HTTP-заголовки не были возвращены, т. Е. Запрос не увенчался успехом. Возможно, интернет-доступ к серверу был недоступен или по какой-то другой причине недоступен.
Если вы посмотрите на документы curl_getinfo
, он предлагает проверить, произошла ли ошибка в примере:
if(!curl_errno($ch)) { $info = curl_getinfo($ch); echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url']; }