使用Guzzle,我正在使用JSON格式的一些外部api, 通常我用
来获取数据$ data = $ request-> getBody()-> getContents();
但是我无法从这个不同的api获取数据。 似乎数据不在“响应正文”中。
此api调用有效: https://i.ibb.co/80Yk6dx/Screenshot-2.png
这不起作用: https://i.ibb.co/C239ghy/Screenshot-3.png
public function getRemoteCienciaVitaeDistinctions()
{
$client = new Client(['headers' => ['Accept' => 'application/json']]);
$request = $client->get(
'https://................/',
[
'auth' => ['...', '...'],
]
);
$data = $request->getBody()->getContents();
return $data;
}
答案 0 :(得分:0)
第二个呼叫运行正常,但响应为空,
正如我们在屏幕快照3中看到的Total = 0
,因此该API的响应为空。
为正确处理此问题,我建议您对方法进行此修改:
public function getRemoteCienciaVitaeDistinctions()
{
$client = new Client(['headers' => ['Accept' => 'application/json']]);
$request = $client->get(
'https://................/',
[
'auth' => ['...', '...'],
]
);
//Notice that i have decoded the response from json objects to php array here.
$response = json_decode($request->getBody()->getContents());
if(isset($response->total) && $response->total == 0) return [];
return $response;
}
请检查您正在使用的API的文档