我试图将https://api.binance.com/api/v3/ticker/price称为json对象,但是当我使用json_decode时,我不断地将Array转换为字符串转换。我在这做错了什么?
<?php namespace App\Helpers;
use GuzzleHttp\Exception\GuzzleException;
use GuzzleHttp\Client;
class Ticker
{
private $client;
public function __construct()
{
$this->client = new Client(['base_uri' => 'https://api.binance.com/api/']);
}
public function update()
{
$response = json_decode($this->client->get('v3/ticker/price')->getBody());
return $response;
}
}
guzzle响应中的getBody
方法不返回字符串,它返回一个流。
尝试:
$this->client->get('v3/ticker/price')->getBody()->getContents()
json_decode
正在将guzzle响应字符串转换为php数组。然后,您将从控制器方法返回该数组。无论您从控制器返回什么,Laravel都会尝试将其转换为字符串。由于您返回了一个数组,因此您将获得数组到字符串转换错误。
要么不解码guzzle响应,要么将其转换为字符串或其他您想要的响应。