2014-11-04 7 views
1

У нас есть задание фильтровать аутентичные запросы на завивки роботов. Я отправляю запрос на завиток на сайт, но он возвращает мне недопустимый файл изображения (я знаю, потому что, когда я его просматриваю в своем браузере, он работает). Это как-то знает, что мой запрос не аутентичен. Есть ли поле, которое я здесь просматриваю, я пытаюсь точно воспроизвести запрос браузера.заголовки браузера для запроса 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

Попробуйте '$ ch = curl_init(); curl_setopt ($ ch, CURLOPT_URL, $ url); 'вместо' $ ch = curl_init ($ url); ' –

ответ

0

Вы запросили GZIP/сдуваться кодирования, но не сделал завиток знать об этом, так что не декодирует изображение. Добавление этого следует исправить:

curl_setopt($ch, CURLOPT_ENCODING, ''); 
Смежные вопросы