从uri获取使用php / guzzle的Json

时间:2018-12-10 10:09:10

标签: php laravel guzzle artisan

我正在做一个工匠命令来获取此网页中的json: https://www.arera.it/it/atti-18.json

我正在使用php / guzzle库:

$client = new \GuzzleHttp\Client();
$crawler = $client->request('GET', 'https://www.arera.it/it/atti-18.json');
echo $res->getBody();

但是我在输出控制台中收到了这个消息:

<html><head><title>Request Rejected</title></head><body>The requested URL was rejected. Please consult with your administrator.<br><br>Your support ID is: 5887289226846801693</body></html>

,而不是json。有人可以帮我吗?我正在使用laravel 5.4和最新版本的guzzle。

2 个答案:

答案 0 :(得分:0)

此类消息可以由过滤器生成,以保护服务器免受滥用。 此类禁令通常会在一天后失效,因此您可以稍后再试。

答案 1 :(得分:0)

好的,我已经解决了我的问题。在我的客户请求中,我像在耗时的文档http://docs.guzzlephp.org/en/stable/request-options.html#headers中添加了headers数组。所以我的客户要求是:

$res = $client->request('GET', 'https://www.arera.it/it/atti-18.json',[
        'headers' => [
            'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36',
            'accept' => 'image/webp,image/apng,image/*,*/*;q=0.8'
            ],
        'debug' => 'true',
    ]);

也许它可以帮助其他人。感谢您的所有答复。