我一直在尝试使用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;
?>
答案 0 :(得分:0)
提供的细节太少,我们无法确切知道。
猜测是你正在做错误的帖子,因为当你将一个哈希数组传递给CURLOPT_POSTFIELDS时,它会执行一个多部分formpost,这可能不是服务器所期望的。传入一个字符串而不是进行“正常”POST。
如果这还不够,请在浏览器中使用LiveHTTPHeaders或类似工具来确定在“手动”会话中发送的内容,然后确保您的卷曲程序尽可能模仿该操作。