Erreur code 28 avec cURL
CELA A ÉTÉ RÉSOLU - VOIR LA RÉPONSE À LA FIN DE CE POST
Je suis en train de récupérer des données à partir d'un serveur distant à l'aide de PHP /cURL
Si j'ai mis l'URL suivante dans un navigateur, les données proviennent de retour correctement.
Cependant, lorsque j'essaie d'accéder à si avec PHP /cURL il vient de fois (erreur code 28).
$json = curl($jsonurl, $realm['intRealmID'], $realm['strRealmServer']);
function curl($url, $realm, $realmServer){
$header = array();
$header[] = 'Host: realm'.strval($realm).'.'.$realmServer.'.castle.wonderhill.com';
$header[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
$header[] = 'Accept-Language: en-us,en;q=0.5';
$header[] = 'Accept-Encoding: gzip,deflate';
$header[] = 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7';
$header[] = 'Connection: keep-alive';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0');
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_ENCODING, '');
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
return curl_exec($ch);
curl_close($ch);
}
Quelqu'un a des idées de pourquoi il fonctionne à partir du navigateur, mais pas via cURL? Grâce
PLUS D'INFOS
Alors que cURL n'est pas de travail pour l'URL ci-dessus. Pour l'URL ci-dessous il fonctionne très bien. La seule différence est que le serveur de données est demandée. Les données elles-mêmes et de POST est identique.
RÉPONSE
Enfin de retour à la présente et a constaté que le parrain était le problème. Le serveur m'attendais à voir pas de référent dans l'entête de la requête. Quand il l'a fait la demande a été bloqué. Ce comportement n'a probablement pas été cohérente sur tous les serveurs à la fois, mais il est maintenant. Retirer le référent de l'en-tête de demande et en laissant tout le reste de la même fonctionne maintenant.
Trouvé le référent est la question. J'ai mis à jour l'OP.
OriginalL'auteur runey71 | 2011-07-13
Vous devez vous connecter pour publier un commentaire.
La plus grande différence entre votre cURL fonction, et en demandant directement les informations est le
CURLOPT_HEADER
bien, je voudrais tout d'abord essayez de supprimer ce à partir du code.CURLOPT_USERAGENT
, il ne devrait pas être un gros problème, mais je voudrais l'enlever, sauf si absolument nécessaire.J'ai essayé de l'enlever
CURLOPT_HTTPHEADER
etCURLOPT_USERAGENT
mais toujours pas de joie. La tentative continue de temps.Constaté que le référent est la question. J'ai mis à jour l'OP. Merci encore pour votre aide 🙂
OriginalL'auteur Ryan
essayer cette
Alternativement, vous pouvez utiliser le
file_get_contents
fonction à distance, mais la plupart des hébergeurs n'autorisent pas cetteQuelques autres options que j'utilise:
essayez ceci:
file_get_contents
ne fonctionne pas. J'ai ajouté quelques infos supplémentaires à la question d'origine. Comme le cURL fonctionne pour une URL, mais pas pour l'original posté. Toutefois, ils sont pratiquement identiques. La seule exception étant le serveur distant.Juste essayé supplémentaires cURL options, et encore pas de chance 🙁
U ne utilisation bindto?
J'ai ajouté un peu de code snipet essayer.
Trouvé le référent est la question. J'ai mis à jour l'OP. Merci encore pour votre aide 🙂
OriginalL'auteur jeni