Immer Fehler code 28 mit cURL

WURDE DIESES PROBLEM GELÖST - SIEHE ANTWORT AM ENDE VON DIESEM POST

Ich versuche zum abrufen von Daten von einem remote-server mit PHP /cURL

Wenn ich die folgende URL in einem browser die Daten wieder richtig.

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

Aber wenn ich versuche, Zugriff, falls Sie mit PHP /cURL es einfach mal aus (Fehlercode 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);

}

Jemand irgendwelche Ideen, warum es funktioniert aus dem browser, aber nicht über cURL? Dank

WEITERE INFOS
Während cURL funktioniert nicht für die die obige URL. Für die URL unten funktioniert es Prima. Der einzige Unterschied ist der server, der die Daten angefordert. Die Daten selbst-und POST identisch ist.

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

ANTWORT

Schließlich zurück zu diesem und gefunden, dass der referrer war das problem. Der server wurde erwartet, um zu sehen kein referrer in den request-header. Wenn es die Anforderung blockiert wurde. Dieses Verhalten war wahrscheinlich nicht konsistent über alle Server zu der Zeit, aber es ist jetzt. Entfernen der referrer aus dem request-header und lassen alles anderen derselben jetzt funktioniert.

Gibt es einen Grund, dass die Benutzer-IDs sind unterschiedlich in die 2 URLs? Ist dies, weil Sie 1 für jeden server? Dies ist ungewöhnlich, da Benutzer-IDs sind in der Regel universell über einen einzelnen Dienst
Fand die referrer-war die Frage. Ich habe aktualisiert die OP.

InformationsquelleAutor runey71 | 2011-07-13

Schreibe einen Kommentar