我正在做一个工匠命令来获取此网页中的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。
答案 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',
]);
也许它可以帮助其他人。感谢您的所有答复。