Клиент Guzzle не возвращает сообщение об ошибке. Только "результат" возвращается

Я не знаю, почему клиент Guzzle возвращает только "результат". Как я могу получить целые данные ответа.

(1) method_A возвращает результат. Клиент Guzzle возвращает результат. Это не проблема.

// HTTP request with curl

curl -X POST --data '{"jsonrpc":"2.0","method":"method_A","params":["xxx"],"id":1}' https://example.com/rpc
{"jsonrpc":"2.0","id":1,"result":"0x5209"}

// HTTP request with Guzzle

$client = new Client(['base_uri' => 'https://example.com/rpc']);
$response = $client->request('POST', '', ['json' => $params]);
echo json_encode($response) // 0x5209

(2) method_B ​​возвращает ошибку. Клиент Guzzle возвращает пустое вместо ошибки. Это моя проблема.

// HTTP request with curl

curl -X POST --data '{"jsonrpc":"2.0","method":"method_B","params":["xxx"],"id":1}' https://example.com/rpc
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"nonce too low"}}

// HTTP request with Guzzle

$client = new Client(['base_uri' => 'https://example.com/rpc']);
$response = $client->request('POST', '', ['json' => $params]);
echo json_encode($response) // empty

FYI. https://example.com/rpc всегда возвращает 200 ответов, даже если в данных ответов есть ошибки по некоторым причинам.


Обновление 1

Я пытался как следует.

Log::info($response);
Object of class GuzzleHttp\Psr7\Response could not be converted to string

Log::info(json_decode($response));
json_decode() expects parameter 1 to be string, object given

Log::info(var_dump($response));
<pre class='xdebug-var-dump' dir='ltr'>
<b>object</b>(<i>GuzzleHttp\Psr7\Response</i>)[<i>374</i>]
  <i>private</i> 'reasonPhrase' <font color='#888a85'>=&gt;</font> <small>string</small> <font color='#cc0000'>'OK'</font> <i>(length=2)</i>

...

0 ответов

Другие вопросы по тегам