Wie bekomme ich den Körper von SENT-Daten mit Guzzle PHP?

8

Ich verwende Guzzle (v6.1.1) in PHP, um eine POST-Anfrage an einen Server zu stellen. Es funktioniert gut. Ich füge einige Logging-Funktionen hinzu, um zu protokollieren, was gesendet und empfangen wurde, und ich kann nicht herausfinden, wie man die Daten erhält, die Guzzle an den Server gesendet hat. Ich kann die Antwort erhalten, aber wie bekomme ich die send Daten? (Was wäre die JSON-Zeichenfolge.)

Hier ist der relevante Teil meines Codes:

%Vor%

Jede Hilfe wäre willkommen. Ich habe versucht, im Guzzle-Quellcode nach einer Funktion zu suchen, die getBody () ähnlich ist, die mit der Anfrage funktionieren würde, aber ich bin kein PHP-Experte, also habe ich nichts hilfreiches herausgefunden. Ich habe auch viel Google durchsucht, aber nur Leute gefunden, die davon sprachen, die Antwort vom Server zurück zu bekommen, womit ich keine Probleme habe.

    
ruhnet 20.01.2016, 20:57
quelle

2 Antworten

7

Sie können diese Arbeit ausführen, indem Sie eine Middleware erstellen.

%Vor%

Dies wird jedoch zuvor ausgelöst, um die Antwort zu erhalten. Sie möchten vielleicht so etwas tun:

%Vor%     
Federkun 20.01.2016, 21:33
quelle
1

Sie können die von der Anfrage erzeugte Datenfolge durch Ausführen von

reproduzieren %Vor%

Dies wird Ihre Daten als JSON-String ausgeben.

Dokumentation unter Ссылка

BEARBEITEN

Guzzle hat eine Request und eine Response Klasse (und viele andere).
Request hat effektiv eine getQuery() -Methode, die ein Objekt zurückgibt, das Ihre data als privat enthält, genauso wie alle anderen Mitglieder.
Sie können auch nicht darauf zugreifen.

Aus diesem Grund glaube ich, dass manuelle Kodierung die einfachste Lösung ist. Wenn Sie wissen möchten, was von Guzzle getan wird, hat es auch eine Klasse Collection , die Daten transformiert und in einer Anfrage sendet.

    
chalasr 20.01.2016 21:46
quelle

Tags und Links