2012-04-22 133 views
2

我想捕获参数如何发送。通常我所做的就是发出请求并检查Firebug的params选项卡发送的参数是什么。但是,当我尝试在以下站点(http://www.infraero.gov.br/voos/index_2.aspx)上执行此操作时,它不起作用 - 我无法看到使用curl重复此请求的参数是什么。我怎么才能得到它?我不确定,但我认为正在使用Cookie。如何通过cURL重现请求

编辑

我能够获得请求的内容,但无法理解。它似乎使用JavaScript来生成正确的请求。我怎样才能通过cURL重现这个请求?

+0

他们正在使用后...没有任何'参数。使用HTTPfox或firebug的'网络'标签来查看低级别的http通信,你将会看到网络上到底发生了什么。 – 2012-04-22 21:12:08

+0

它只显示请求标题而不显示其内容。我如何获得必要的信息以通过curl重播此请求? – 2012-04-22 21:17:42

+1

POST数据进入请求的主体,而不是头部。例如查看HTTPFox的“内容”选项卡。 – 2012-04-22 21:19:15

回答

1

您是否看到过此问题cURL post data to asp.net page?这可能会回答那里的问题(我所做的只是搜索“ASP.NET cURL”)。而这一个:Unable to load ASP.NET page using Python urllib2谈论Python,但它的方式应该转化为cURL。

但是对于我的$ 0.02,我不打算试图解开ASP.NET的__VIEWSTATE和javascript。是否使用cURL是绝对要求?

我想你会更适合使用客户端,它更像一个真正的浏览器,并理解JavaScript。这有点工作,但并不像听起来那么糟糕。我之前用http://watirwebdriver.com/和一个简短的Ruby脚本完成了这个。以下是如何使用Python and Mechanize来做到这一点(这可能会更轻巧)。 http://phantomjs.org/是您使用javascript脚本的另一种选择。如果你谷歌“刮ASP.NET”,你会发现这是一个普遍的问题。

0

你没有说你想怎么完成它,但你可以卷曲发送请求简单地卷曲-d名1 = contents1 &名称2 = contents2 [TargetURL中]等

请注意,你可能首先需要获取主页面并提取“__VIEWSTATE”表单域并提交返回(非常巨大)的内容以使您的提交被接受。

+0

是的,我知道如何卷曲发布请求。我相信我的问题在于“__VIEWSTATE”。我不习惯ASP,所以我不知道它是什么,或者如何处理它。是否有“快捷方式”,以便我可以发送请求而不需要深入学习? – 2012-04-26 20:23:31

+0

由于它是作为隐藏的表单字段填充的,因此您可以假定您的curl请求需要将其发送。只需获取HTML页面,提取__VIEWSTATE值并在curl请求中传递它。 – 2012-04-27 06:14:07