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.

http://realm103.c7.castle.wonderhill.com/api/map.json?user%5Fid=5245274&x=375&y=375&timestamp=1310554325&%5Fsession%5Fid=5b2070a46a083a33e053d60dbc2d062e&dragon%5Fheart=098d2deb0a37f18c97428d636c456572f9bade24&version=3

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.

http://realm4.c5.castle.wonderhill.com/api/map.json?user%5Fid=1053774&x=375&y=375&timestamp=1310616808&%5Fsession%5Fid=5b2070a46a083a33e053d60dbc2d062e&dragon%5Fheart=f35f476facab91f0e901eaf2209a0c8a9b9bedcc&version=3

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.

Est-il une raison que l'Id d'utilisateur sont différents dans les 2 URLs? Est-ce parce que vous avez 1 pour chaque serveur? Ce est inhabituel, que les Id utilisateur sont généralement universel dans un seul service
Trouvé le référent est la question. J'ai mis à jour l'OP.

OriginalL'auteur runey71 | 2011-07-13