2011-04-04 93 views
0

我有此页:http://www.tataphoton.com/customer-service.aspx哪些变量被POST发送这里

我从第一个组合第一个选项:“光子临”,然后按转到 后来我选择的第一个城市:艾哈迈达巴德

现在显示客户服务细节。

我希望通过发送POST请求来获取相同的数据。

我看到下面的变量被发送到服务器(我从Firebug-得到它> Net标签):

  • comGetvalue => '光子临',
  • __EVENTARGUMENT => '',
  • __LASTFOCUS => '',
  • comState_city> '艾哈默德巴德',
  • __EVENTTARGET> 'comState_city',
  • __EVENTVALIDATION> '很长的字符串',
  • __VIEWSTATE> '长串'

上面的代码显示名称=值对(如在我的Perl代码)。 但服务器没有发送正确的响应。我是否缺少任何未发送的帖子变量?

我已经添加了javascript和firebug作为标签,因为这些人可以很容易地找出任何缺少的值,我不是通过查看html代码发送的。

回答

1

首先,您正在形成的请求来自它要发往的站点(这是否是跨站请求)?

其次,您正尝试将VIEWSTATE的副本发送到服务器,它不起作用。视图状态是一个特殊加密的字符串,它包含关于当前页面的所有状态信息,cookie等,并随每次加载而改变。任何尝试使用其他方法发回此内容都将被服务器拒绝。

+0

但是当我使用第一个组合值(“Photon Pro”)发送POST请求(即按下Go按钮,等价地)时,我能够获得“圆圈”。所以至少有一件事使用VIEWSTATE的无效值。 – user5858 2011-04-05 07:18:55

1

__EVENTVALIDATION__VIEWSTATE不可能是重要的吗?此外,考虑到字段名称,这些值是否可能是每个会话派生的,以防止外部访问?

如果您没有得到您期望的回复,我会首先检查您的请求的性质 - 我的猜测是您试图在一个已设计为要求您启动的进程的中间“切入”从一开始就。因此,您可能需要从头开始处理curl请求 - 首先请求初始页面(启用cookie)以建立会话ID,然后发送请求以“选择”第一个组合的值,然后再发送一个选择城市。

+0

Pl。看到我上面的评论。我想完全同意你的看法。但正如我上面评论的那样,我想知道我是不是犯了一个愚蠢的错误。 – user5858 2011-04-05 07:21:18