Ich wollte Guzzle 6 verwenden, um eine XML-Antwort von einer Remote-API abzurufen. Dies ist mein Code:Rufen Sie den gesamten XML-Antworttext mit Guzzle 6 HTTP Client ab.
$client = new Client([
'base_uri' => '<my-data-endpoint>',
]);
$response = $client->get('<URI>', [
'query' => [
'token' => '<my-token>',
],
'headers' => [
'Accept' => 'application/xml'
]
]);
$body = $response->getBody();
Vardumping die $body
würde ein GuzzleHttp\Psr7\Stream
Objekt zurückgeben:
object(GuzzleHttp\Psr7\Stream)[453]
private 'stream' => resource(6, stream)
...
...
Ich konnte dann $body->read(1024)
rufen 1024 Bytes aus der Antwort zu lesen (die in XML lesen würde).
Allerdings möchte ich die gesamte XML-Antwort von meiner Anfrage abrufen, da ich es später unter Verwendung der SimpleXML
Erweiterung analysieren müssen.
Wie kann ich am besten die XML-Antwort von GuzzleHttp\Psr7\Stream
Objekt abrufen, so dass es für das Parsen verwendbar ist?
Würde die while
Schleife den Weg gehen?
while($body->read(1024)) {
...
}
Ich würde mich über Ihren Rat freuen.
Danke Sir! Ich habe nicht daran gedacht, den gesamten Antworttext auf String zu setzen. – luqo33
Ich stehe vor dem gleichen Problem. Könnten Sie Ihre Antwort mit einer Schritt für Schritt Lösung ausarbeiten? Wie würde der vollständige Code jetzt aussehen? – davejal