Пустой ответ Laravel GuzzleHttp

Я пытаюсь получить значение 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"


person MadzQuestioning    schedule 09.12.2019    source источник
comment
может быть, он на самом деле возвращает пустое тело, каков код состояния   -  person lagbox    schedule 09.12.2019
comment
Если вы посещаете фактический URL-адрес, он возвращает ответ json, а код равен 200.   -  person MadzQuestioning    schedule 09.12.2019
comment
Что находится в dd($response);   -  person Prashant Deshmukh.....    schedule 09.12.2019
comment
если вы используете file_get_contents($url), он все еще пуст?   -  person lagbox    schedule 09.12.2019
comment
@lagbox file_get_contents возвращает ожидаемый результат. Но это в строковом формате, что понятно. Но я хотел бы использовать получение значения с помощью guzzlehttp, поскольку есть вероятность, что в этой конечной точке потребуется аутентификация.   -  person MadzQuestioning    schedule 09.12.2019
comment
да, я знаю, это было сделано для того, чтобы проверить, есть ли какие-либо другие проблемы, исключая возможные проблемы, поскольку guzzle может использовать разные методы для получения контента, включая curl, если он есть.   -  person lagbox    schedule 09.12.2019
comment
Я понимаю. Не уверен, что мне нужно что-то проверить? Кажется, я что-то упустил в реализации Guzzle   -  person MadzQuestioning    schedule 09.12.2019


Ответы (1)


ОК, я нашел решение своей проблемы. Это не имеет ничего общего с

$ответ->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));
person MadzQuestioning    schedule 09.12.2019