J'essaie de demander une URL mais cela échoue et lorsque je vide le résultat de curl exec, il renvoie false.
http://mydomain.com:8807/getstate/?zipcode=22311&field=statecode
Dans le navigateur, je peux y accéder et il renvoie le corps de contenu HTTP correct, le type de contenu est text/html.
Si je le change en:
http://mydomain.com:8807/getstate/?zipcode=22311&field=state
Ce qui est le même service REST sauf que la valeur du paramètre est différente, mes trucs curl fonctionnent bien. Comment cela pourrait-il être ?
Je ne fais pas plusieurs demandes, je ne fais qu'une seule instance.
$url = 'http://mydomain.com:8807/getstate/?zipcode=22311&field=state';
Ce qui est le même service REST sauf que la valeur du paramètre est différente, mes trucs curl fonctionnent bien. Comment cela pourrait-il être ?
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 10 );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
$request = curl_exec( $ch );
var_dump($request);
Je suis plutôt sûr que ce n'est pas une faute de frappe, je ne trouve pas de raison. Il renvoie bool(false)
pour le code d'état mais renvoie la bonne chose pour l'état.
Mise à jour : Il semble que les en-têtes de réponse ne soient pas appropriés - le navigateur est indulgent et affiche la page indépendamment des en-têtes incorrects (ou de leur absence).
2 réponses
Il vous manque quelque chose. Activez le débogage curl pour vous en dire plus curl_setopt($ch, CURLOPT_VERBOSE, true);
Voir également ce qui est renvoyé dans firebug, et utilisez fiddler pour aider au débogage.
Essayez de définir le même agent utilisateur d'un navigateur dans Curl avant de faire la demande...
Si cela fonctionne avec le navigateur, cela devrait fonctionner de cette manière.
Questions connexes
De nouvelles questions
php
PHP est un langage de script largement utilisé, de haut niveau, dynamique, orienté objet et interprété, principalement conçu pour le développement Web côté serveur. Utilisé pour les questions sur le langage PHP.