【问题标题】:Laravel GuzzleHttp response emptyLaravel GuzzleHttp 响应为空
【发布时间】:2019-12-09 21:19:03
【问题描述】:

我正在尝试检索 URL 的值,但它返回空响应。不知道我做错了什么我一直在尝试检索该值,但我得到一个空值。下面是我的代码

$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://fantasy.premierleague.com/api/bootstrap-static/');

dd($response->getBody()->getContents());

当尝试转储响应时,我得到以下响应

当尝试读取响应的getBody() 时,我得到了这个输出

我正在使用 guzzle "guzzlehttp/guzzle": "^6.4"

【问题讨论】:

  • 可能实际上是返回一个空体,状态码是什么
  • 如果你访问实际的 url 它返回一个 json 响应并且代码是 200
  • 什么是 dd($response);
  • 如果你使用file_get_contents($url),它还是空的吗?
  • @lagbox file_get_contents 返回我期望的结果。但它是可以理解的字符串格式。但我想使用的是使用 guzzlehttp 检索值,因为此端点可能需要身份验证

标签: laravel laravel-5 guzzle


【解决方案1】:

好的,我找到了解决问题的方法。和这个没关系

$response->getBody()->getContents()

但问题是端点/URL 可能需要用户代理作为 url 参数的一部分

我的代码我能够使用下面的代码检索值

$url = 'https://fantasy.premierleague.com/api/bootstrap-static/';
$client = new \GuzzleHttp\Client();

$response = $client->request('GET', $url, [
    'verify' => false,
    'headers' => [
        'User-Agent' => 'CUSTOM_AGENT_YOU_WANT' // THIS IS WHAT I ADDED TO MAKE IT WORK
    ]
]);

dd(json_decode($response->getBody()->getContents(), true));

【讨论】:

    猜你喜欢
    • 2017-06-05
    • 2017-01-12
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 2015-08-29
    • 2021-02-05
    • 2020-11-27
    • 1970-01-01
    相关资源
    最近更新 更多