Wie zu beheben 411 Länge Erforderlich-Fehler bei file_get_contents und der expedia-XML-API?
Mache ich die online-hotel-Buchung über eine xml-api(php -) Projekt.Wenn ich arbeite in der Reservierung-code zeigt Fehler der folgenden
"Warning: file_get_contents(https://[email protected]</email><firstName>test</firstName><lastName>smith</lastName><homePhone>8870606867</homePhone><creditCardType>CA</creditCardType><creditCardNumber>5401999999999999</creditCardNumber>....</HotelRoomReservationRequest>) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 411 Length Required"
seinen mein code
$context = stream_context_create(
array(
'http' => array(
'method' => 'POST',
'header' => "Content-type: application/x-www-form-urlencoded",
"Accept: application/xml"
)
)
);
$url ='https://book.api.ean.com/....';
$xml = file_get_contents($url, false, $context);
Es ist für das versenden von Kreditkarten-Informationen plz bitte geben Sie mir Vorschläge, welche Art von Fehler... .
- Sie haben einen Fehler die Art und Weise Sie setzen den stream Kontext Optionen.
- Dank plz korrekt mein code danke im Voraus
- Poste bitte deinen vollständigen code.
- stackoverflow nicht erlaubt, den post-code .ich geben schon genug code
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als pro RFC2616 10.4.12:
Müssen Sie den
Content-Length
- header, um IhrePOST
Anfrage. Das ist die Größe in bytes (Oktette) der POST-request-body. Erhalten Sie die Länge, die Sie nutzen könntenstrlen
auf die POST Körper. Als dein code-Beispiel zeigt nicht POST Körper, ist es schwer ein konkretes Beispiel. Die post-Körper ist vergangen, mit der['http']['content']
Eintrag in den stream Kontext.Wahrscheinlich ist es schon genug, wenn Sie die
content
- Eintrag (siehe HTTP-Kontext-OptionenDocs).Edit: Der folgende Beispiel-code könnte lösen Ihr Problem. Es zeigt, wie schick einige XML auf einem server über eine POST-Anforderung mit
file_get_contents
und Einstellung, einschließlich Header, dieContent-Length
header.Wenn Sie eine bessere Fehlerkontrolle, siehe die
ignore_errors
der HTTP-Kontext-optionDocs und$http_response_header
Docs. Detaillierte Handhabung von HTTP-response-Header verfügbar ist, in einem blog-post von mir: HEAD first PHP Streams.Content-Length
erwähnt wurde 2-mal (und auch farbige für Ihre sake). Es braucht nicht ein Genie, um herauszufinden, was zu tun ist und wohin damit. Haben die Leute wirklich keine Mühe, zu versuchen, herauszufinden, Lösungen in diesen Tagen?