当前位置:  开发笔记 > 编程语言 > 正文

Laravel Guzzle不起作用,但Curl确实如此

如何解决《LaravelGuzzle不起作用,但Curl确实如此》经验,为你挑选了1个好方法。

我正在使用Guzzle来处理外部API.

我这样使用它:

$client = new Client;
$request = $client->request('GET', 'https://api.callrail.com/v1/companies.json', [
    'headers' => [
        'Authorization' => 'Token token="my_api_string"'
    ]
]);

return dd($request);

这是输出

Stream {#255 ?
  -stream: stream resource @280 ?}
  -size: null
  -seekable: true
  -readable: true
  -writable: true
  -uri: "php://temp"
  -customMetadata: []
}

但是当我像这样使用卷曲时

$api_key = 'my_api_string';

$ch = curl_init($api_url);

curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Token token=\"{$api_key}\""));

$json_data = curl_exec($ch);

return dd($json_data);

输出看起来像预期的那样

{"page":1,"per_page":100,"total_pages":1,"total_records":11,
....
....

我对Guzzle做错了什么?



1> James..:

您已Guzzle正确设置请求,只需$request在检索后执行更多操作即可.

在您的请求后添加此行:

$result = json_decode($request->getBody());

将其添加到您的代码中它将如下所示:

$client = new Client;
$request = $client->request('GET', 'https://api.callrail.com/v1/companies.json', [
    'headers' => [
        'Authorization' => 'Token token="my_api_string"'
    ]
]);

$result = json_decode($request->getBody());

return dd($result);

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有