Заголовки, которые вы отправляете, - это то, что получающий сервер использует, чтобы решить, какой контент обслуживать. Это все еще будет текстовое содержимое, но только с другим заголовком Content-Type
.
guzzlehttp/guzzle 6.x
Помощники $response->json()
и $response->xml()
были удалены в 6.x. Для репликации этого поведения можно использовать следующие строки:
// Get an associative array from a JSON response.
$data = json_decode($response->getBody(), true);
См. https://www.php.net/manual/en/function.json-decode.php
// Get a `SimpleXMLElement` object from an XML response.
$xml = simplexml_load_string($response->getBody());
См. https://www.php.net/manual/en/function.simplexml-load-string.php
guzzlehttp/guzzle 5.x
В Guzzle 5.x есть несколько ярлыков, которые могут вам помочь:
$client = new Client(['base_uri' => 'https://example.com']);
$response = $client->get('/');
// $response = Psr\Http\Message\ResponseInterface
$body = (string) $response->getBody();
// $body = raw request contents in string format.
// If you dont cast `(string)`, you'll get a Stream object which is another story.
Теперь все, что вы делаете с $body
, зависит от вас. Если это ответ JSON, вы должны сделать:
$data = $response->json();
Если это XML, вы можете позвонить:
$xml = $response->xml();
Я никогда не работаю с XML API, поэтому я не могу дать вам больше примеров того, как пройти по XML, который вы получите.