Volevo utilizzare Guzzle 6 per recuperare una risposta xml da un'API remota. Questo è il mio codice:Recupera l'intero corpo della risposta XML con il client HTTP di Guzzle 6
$client = new Client([
'base_uri' => '<my-data-endpoint>',
]);
$response = $client->get('<URI>', [
'query' => [
'token' => '<my-token>',
],
'headers' => [
'Accept' => 'application/xml'
]
]);
$body = $response->getBody();
Vardumping il $body
sarebbe restituire un oggetto GuzzleHttp\Psr7\Stream
:
object(GuzzleHttp\Psr7\Stream)[453]
private 'stream' => resource(6, stream)
...
...
ho potuto quindi chiamare $body->read(1024)
a leggere 1024 byte dalla risposta (che avrebbe letto in XML).
Tuttavia, mi piacerebbe recuperare l'intera risposta XML dalla mia richiesta poiché sarà necessario analizzarla in seguito utilizzando l'estensione SimpleXML
.
Come posso recuperare la risposta XML dall'oggetto GuzzleHttp\Psr7\Stream
in modo che sia utilizzabile per l'analisi?
Il ciclo while
vorrebbe andare?
while($body->read(1024)) {
...
}
Apprezzerei il vostro consiglio.
Grazie signore! Non ho pensato di trasmettere tutto il corpo della risposta alla stringa. – luqo33
Sto affrontando lo stesso problema. Potresti elaborare la tua risposta, con una soluzione passo passo? Come sarebbe il codice completo ora? – davejal