Php 使用guzzle laravel4从外部api获取数据

Php 使用guzzle laravel4从外部api获取数据,php,laravel,guzzle,Php,Laravel,Guzzle,我正在尝试使用Laravel4中的Guzzle 4.0从外部API获取数据 我已经试过了 $client = new \GuzzleHttp\Client(); $response = $client->get('https://openexchangerates.org/api/latest.json?app_id=************'); echo "<pre>"; dd($response->getBody()); 有人能告诉我如何获得正确的json数据吗

我正在尝试使用Laravel4中的
Guzzle 4.0
从外部API获取数据

我已经试过了

$client = new \GuzzleHttp\Client();
$response = $client->get('https://openexchangerates.org/api/latest.json?app_id=************');
echo "<pre>";
dd($response->getBody());
有人能告诉我如何获得正确的json数据吗


提前感谢您的支持。

试着将身体铸成一根线:

$body = $response->getBody();
// Implicitly cast the body to a string and echo it
echo $body;
// Explicitly cast the body to a string
$stringBody = (string) $body;
getBody()
方法实际上返回了一个对象,这是经过设计的。如果您尝试将其用作字符串,例如使用
echo
,它将自动转换为字符串

但是,在
dd()
调用中,需要显式转换为字符串,否则将获得对象输出

这是来自文档:

可以使用getBody方法检索响应的主体。主体可以用作字符串、转换为字符串或用作流式对象

print_r($response->json());
有关更多详细信息,请参见此处:


尝试将主体铸造成字符串:

$body = $response->getBody();
// Implicitly cast the body to a string and echo it
echo $body;
// Explicitly cast the body to a string
$stringBody = (string) $body;
getBody()
方法实际上返回了一个对象,这是经过设计的。如果您尝试将其用作字符串,例如使用
echo
,它将自动转换为字符串

但是,在
dd()
调用中,需要显式转换为字符串,否则将获得对象输出

这是来自文档:

可以使用getBody方法检索响应的主体。主体可以用作字符串、转换为字符串或用作流式对象

print_r($response->json());
有关更多详细信息,请参见此处:


如果您的响应确实是JSON,那么可以调用响应对象上的
JSON()
方法来返回JSON数组


这将在一次调用中执行强制转换和解析,我觉得这有点干净。

如果您的响应确实是JSON,那么您可以在响应对象上调用
JSON()
方法来返回JSON数组


这可以在一次调用中进行转换和解析,我觉得这有点干净。

谢谢你的回答,通过使用它我可以得到字符串,但我的问题没有得到解决,因为我还需要在数据库中存储值:(如果你能得到字符串,你可以使用
json\u decode
将其解析为json。或者,只需调用
$response->json()
正如Jason在下面提到的。一旦解析了JSON数据,您就可以提取各个值并存储在数据库中。感谢您的回答,通过使用此选项,我可以获得字符串,但我的问题没有得到解决,因为我还需要在数据库中存储值:(如果您可以获取字符串,您可以使用
json\u decode
将其解析为json。或者,正如Jason在下面提到的那样,只需调用
$response->json()
。获得解析的json数据后,您就可以提取各个值并存储在数据库中。