使用curl从站点获取结果

发布于 2024-10-14 01:11:30 字数 1069 浏览 5 评论 0原文

我一直在尝试使用 POST 方法将一些变量发布到站点,使用curl 来获得一些结果。我正在发布到此链接。

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

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

我已经监视了该网站,并尝试通过向该链接发出发布请求来获取这些结果。但是,我收到“错误标题”错误。我尝试过改变一些事情,但无法找到解决方案。

这是我的代码:


 "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;
   ?>

I have been trying to post some variables to a site using POST method, using curl to get some results. I am posting to this link.

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

At this page you will see a drop down menu .. onchange some values are returned in "Yellow" colored table.

I have monitored this site and trying to get those results by making a post request to that link. But, I am getting "Bad Header" error. I have tried changing things but ubable to find a solution.

Here is my code:


 "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;
   ?>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

荒岛晴空 2024-10-21 01:11:30

提供的细节太少,我们无法确定。

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

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

There's too little details presented for us to know for sure.

A guess is that you're doing the wrong kind of post, since when you pass in a hash array to CURLOPT_POSTFIELDS it will do a multipart formpost which might not be what the server expects. Pass in a string instead to make a "normal" POST.

If that is not enough, use LiveHTTPHeaders or similar in a browser to figure out exactly what is sent in a "manual" session and then you make sure that your curl program mimics that operation as closely as possible.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文