Körperinhalte aus einer PSR-7-Antwort in Guzzle 6 ermitteln
In Guzzle 6 entsprechen die Antworten dem PSR-7-Standard, der verwendet Streams zum Speichern von Antworttexten. Um den Körperinhalt abzurufen, muss man den Stream abrufen und anschließend seinen Inhalt abrufen.
Methoden zum Abrufen des Körperinhalts:
Casting zu String:
$contents = (string) $response->getBody();
getContents():
$contents = $response->getBody()->getContents();
Unterschied zwischen getContents() und Casting:
getContents() gibt das zurück verbleibende Stream-Inhalte. Nachfolgende Aufrufe von getContents() geben eine leere Zeichenfolge zurück, sofern die Stream-Position nicht zurückgesetzt wird. Beim Casting hingegen werden alle Stream-Daten vom Anfang bis zum Ende gelesen.
Beispiel:
$stream = $response->getBody(); $contents = $stream->getContents(); // contents are retrieved $contents = $stream->getContents(); // returns empty string $stream->rewind(); // seek the stream back to the beginning $contents = $stream->getContents(); // contents are retrieved again
Beim Casting in einen String wird ein einzelner Lesevorgang durchgeführt und gibt alle Daten aus dem zurück Stream.
$contents = (string) $response->getBody(); // contents are retrieved $contents = (string) $response->getBody(); // contents are retrieved again
Dokumentation:
Das obige ist der detaillierte Inhalt vonWie erhält man effizient Körperinhalte aus einer Guzzle 6 PSR-7-Reaktion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!