我们有一个过滤来过滤机器人的真实卷曲请求。我正在向网站发送一个curl请求,但是它返回给我一个无效的图像文件(我知道,因为当我用我的浏览器查看它时它可以工作)。它以某种方式知道我的要求不是真实的。是否有一个我忽略的字段,我正在尝试模仿浏览器请求。
$header_arr = array(
'0' =>'Host: www.myittest.com',
'1' =>'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0',
'2' =>'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*\/*;q=0.8',
'3' =>'Accept-Language: en-US,en;q=0.5',
'4' =>'Accept-Encoding: gzip, deflate',
'5' =>'Connection: keep-alive',
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header_arr);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 6);
$raw=curl_exec($ch);
答案 0 :(得分:0)
您已经请求了gzip / deflate编码,但尚未对其进行卷曲识别,因此它不会对图像进行解码。添加它应该解决它:
curl_setopt($ch, CURLOPT_ENCODING, '');