使用curl从站点获取结果

时间:2011-01-24 02:07:20

标签: php curl libcurl

我一直在尝试使用POST方法将一些变量发布到网站,使用curl获取一些结果。我发布到这个链接。

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

在此页面,您将看到一个下拉菜单.. onchange在“黄色”彩色表中返回一些值。

我已监控此网站,并尝试通过向该链接发布请求来获取这些结果。但是,我收到“Bad Header”错误。我尝试过改变一些事情但是可以找到解决办法。

这是我的代码:


 "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 :(得分:0)

提供的细节太少,我们无法确切知道。

猜测是你正在做错误的帖子,因为当你将一个哈希数组传递给CURLOPT_POSTFIELDS时,它会执行一个多部分formpost,这可能不是服务器所期望的。传入一个字符串而不是进行“正常”POST。

如果这还不够,请在浏览器中使用LiveHTTPHeaders或类似工具来确定在“手动”会话中发送的内容,然后确保您的卷曲程序尽可能模仿该操作。