7
votes

Si Curl Getinfo pour le code HTTP ne renvoie pas de code?

Je fais un appel normal de courbure à un service WebService et je saisis le code HTTP de retour via

$code = curl_getinfo ($ch, CURLINFO_HTTP_CODE);


0 commentaires

4 Réponses :


0
votes

Lorsque vous l'enregistrez, vérifiez s'il est vide, s'il s'agit, logez-en, en utilisant cette fonction

http://www.php.net/manual/fr/ fonction.Curl-getinfo.php

Je suppose que c'est que c'est ne pas pouvoir atteindre le serveur.


0 commentaires

0
votes

Vous ne pouvez pas récupérer un curl_getinfo à partir d'une demande qui a échoué. Vérifiez le résultat de curl_exec pour déterminer si une requête HTTP réelle a été effectuée.

Un délai d'attente de connexion ou quelque chose des goûts est une "demande échouée". Dans ce cas curl_exec renvoie false (comme indiqué dans le Manuel Curl_Exec ).


0 commentaires

0
votes

Je suppose que c'est une situation où aucun en-têtes HTTP n'a été retourné - c'est-à-dire une demande échouée. Peut-être que l'accès à Internet du serveur était en panne ou pour une autre raison inaccessible.

Si vous regardez le curl_getinfo code> docs , il suggère de vérifier si une erreur s'est produite dans l'exemple: P>

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

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


0 commentaires

4
votes

Si le code HTTP CURL n'a rien renvoyé (alias '0'), cela signifie que l'opération de courbure a échoué pour une raison quelconque. Il serait avantageux de capturer le curl_error dans vos journaux ainsi que cela pourrait vous donner plus de perspicacité à être arrivé dans ces cas (si elles se reproduisent).

PHP: Curl_Error


0 commentaires