Назначьте getBody () переменной Guzzle - PullRequest
2 голосов
/ 17 июня 2020
• 1000 * То, что я пробовал до сих пор Я пытаюсь назначить ответ переменной
<code>  $result= $response->getBody(); // {"id": 1420053, "name": "guzzle", ...}
  echo $result; //{"id": 1420053, "name": "guzzle", ...}
  $someArray = json_decode($result);
  echo $someArray;  //<!-- Object of class stdClass could not be converted to string (500 Internal Server Error) -->

echo '<pre>' . print_r($response->getBody()->getContents(), true) . '
'; //
 echo '
' . print_r($response->getBody()) . '
'; / *** GuzzleHttp \ Psr7 \ Stream Object ([поток: GuzzleHttp \ Psr7 \ Stream: private] => ID ресурса # 495 [размер: GuzzleHttp \ Psr7 \ Stream: private] => [seekable: GuzzleHttp \ Psr7 \ Stream: private] => 1 [доступно для чтения: GuzzleHttp \ Psr7 \ Stream: private] => 1 [доступно для записи: GuzzleHttp \ Psr7 \ Stream: private] => 1 [uri: GuzzleHttp \ Psr7 \ Stream: private] => php: // временный [customMetadata: GuzzleHttp \ Psr7 \ Stream: private] => Array ())
1
** / return response () -> json (["body" => $ result], 201); // {"body": {},}

Буду очень признателен за любую помощь

$response = $client->request('GET', 'https://api.github.com/repos/guzzle/guzzle');

echo $response->getStatusCode(); // 200
echo $response->getHeaderLine('content-type'); // 'application/json; charset=utf8'
echo $response->getBody(); // '{"id": 1420053, "name": "guzzle", ...}```

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Ответ представляет собой поток, приведите его:

$contents = (string)$response->getBody();
0 голосов
/ 17 июня 2020

json_encode по умолчанию возвращает объект stdClass, если вы хотите, чтобы массив добавил требуемый флаг

$someArray = json_decode($result,true);
  print_r($someArray);

Также, если вы используете ответы json, вы можете сделать это

$result= $response->json()
...