получение результатов с сайта с помощью curl - PullRequest
0 голосов
/ 24 января 2011

Я пытался опубликовать некоторые переменные на сайте, используя метод POST, используя curl, чтобы получить некоторые результаты. Я публикую эту ссылку.

http://www.rasta.pk/Lhr/Lhr_Traffic.aspx

На этой странице вы увидите раскрывающееся меню .. Некоторые значения возвращаются в таблице желтого цвета.

Я наблюдал за этим сайтом и пытался получить эти результаты, отправив запрос по этой ссылке. Но я получаю ошибку "Плохой заголовок". Я пытался что-то изменить, но не смог найти решение.

Вот мой код:


 "Canal Bank Rd",
       "ScriptManager1 " => "UpdatePanelDDLRoads|DropDownRoads",
       "__EVENTARGUMENT" => "",
       "__EVENTTARGET" => "DropDownRoads" 
   );
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_HTTPHEADER, $headerz);
   curl_setopt($ch, CURLOPT_HEADER, 0);
   curl_setopt($ch, CURLOPT_POST, 1);
   curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
   curl_setopt($ch, CURLOPT_REFERER, "http://www.rasta.pk/Lhr/Lhr_Traffic.aspx");
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   $output = curl_exec($ch);
   curl_close($ch);
   echo $output;
   ?>

1 Ответ

0 голосов
/ 29 марта 2011

Слишком мало подробностей представлено для нас, чтобы знать наверняка.

Предположение, что вы делаете неправильный тип поста, так как, когда вы передаете массив хеша в CURLOPT_POSTFIELDS, он будет составлять несколько частейformpost, который может не соответствовать ожиданиям сервера.Вместо этого передайте строку, чтобы сделать «нормальный» POST.

Если этого недостаточно, используйте LiveHTTPHeaders или аналогичные в браузере, чтобы выяснить, что именно отправляется в «ручном» сеансе, а затем убедитесь, чточто ваша программа curl максимально близко имитирует эту операцию.

...