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.
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.
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.
Fand die referrer-war die Frage. Ich habe aktualisiert die OP.
InformationsquelleAutor runey71 | 2011-07-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den größten Unterschied zwischen Ihrem cURL-Funktion und die Anforderung von Informationen direkt die
CURLOPT_HEADER
Eigenschaft, ich würde erstmal versuchen, entfernen diese aus dem code.CURLOPT_USERAGENT
, sollte es nicht eine große Sache, aber ich würde es entfernen, wenn es unbedingt erforderlich ist.Ich habe versucht, das entfernen
CURLOPT_HTTPHEADER
undCURLOPT_USERAGENT
aber immer noch keine Freude. Der Versuch, weiterhin die Zeit aus.Festgestellt, dass der referrer war das Problem. Ich habe aktualisiert die OP. Danke nochmal für deine Hilfe 🙂
InformationsquelleAutor Ryan
versuchen, diese
Alternativ können Sie die
file_get_contents
- Funktion aus der Ferne, aber viele hosts nicht erlauben, dieseEinige andere Optionen, die ich benutze:
versuchen Sie dies:
file_get_contents
funktioniert nicht. Ich Hinzugefügt einige zusätzliche Informationen zu der ursprünglichen Frage. Als der cURL funktioniert für eine URL, nicht aber für das original gepostet. Sie sind jedoch praktisch identisch. Die einzige Ausnahme ist das remote-server.Habe gerade versucht die zusätzliche cURL-Optionen und noch kein Glück 🙁
Hast u verwenden bindto?
Ich habe einige codestück versuchen.
Fand die referrer-war die Frage. Ich habe aktualisiert die OP. Danke nochmal für deine Hilfe 🙂
InformationsquelleAutor jeni