从uri获取带有php/guzzle的Json

从uri获取带有php/guzzle的Json,php,laravel,guzzle,laravel-artisan,Php,Laravel,Guzzle,Laravel Artisan,我正在执行artisan命令以获取此网页中的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 Rej

我正在执行artisan命令以获取此网页中的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>
请求被拒绝请求的URL被拒绝。请咨询您的管理员。

您的支持ID是:5887289226846801693

而不是json。有人能帮我吗?我使用的是laravel 5.4和guzzle的最新版本。

这样的消息可以通过过滤器生成,以防止服务器误用。
此类禁令通常在一天内到期,因此您可以稍后再试。

好的,我已经解决了我的问题。在我的客户机请求中,我像guzzle文档中那样添加了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',
    ]);

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

这是您的api还是第三方?如果是第三方,我建议联系所有者。如果是第三方,可能会发送电子邮件联系所有者有没有避免此筛选的方法?也许在我的请求中添加标题?因为我正在尝试从3天内获取json,而禁令尚未过期。可能此筛选器会阻止您的ip,因此您可以尝试使用代理,或者如Jerodev所说,联系所有者以修复此误报。