PHP Inhalt der HTTP 400-Antwort abrufen

8

Ich verwende PHP mit dem Amazon Payments-Webdienst. Ich habe Probleme mit einigen meiner Anfragen. Amazon gibt einen Fehler zurück, wie es sollte, aber die Art, wie es geht, gibt mir Probleme.

Amazon gibt XML-Daten mit einer Nachricht über den Fehler zurück, aber es wirft auch ein HTTP 400 (oder manchmal sogar 404). Dies bewirkt, dass file_get_contents () sofort einen Fehler ausgibt und ich den Inhalt nicht abrufen kann. Ich habe auch versucht, cURL zu benutzen, aber es hat mir nie eine Antwort gegeben.

Ich brauche wirklich eine Möglichkeit, die XML unabhängig vom HTTP-Statuscode zurückzugeben. Es enthält ein wichtiges "Nachricht" -Element, das mir Hinweise gibt, warum meine Rechnungsanforderungen fehlschlagen.

Hat jemand ein cURL-Beispiel oder andere, die mir erlauben, dies zu tun? Alle meine Anfragen benutzen file_get_contents (), aber ich bin nicht dagegen, sie zu ändern. Alle anderen scheinen zu denken, cURL sei der "richtige" Weg.

    
jocull 14.09.2010, 15:02
quelle

2 Antworten

16

Sie müssen einen benutzerdefinierten Stream-Kontext (3. Argument der Funktion file_get_contents) mit ignore_errors Option auf.

    
DoubleThink 14.09.2010, 15:09
quelle
15

Als Follow-up zu DoubleThinks Beitrag folgt hier ein funktionierendes Beispiel:

%Vor%     
jocull 14.09.2010 15:48
quelle