我有这个页面:http://www.tataphoton.com/customer-service.aspx
我从第一个组合中选择第一个选项:“Photon Pro”然后按Go 然后我选择了第一个城市:艾哈迈达巴德
现在它显示了客户关怀细节。
我想通过以编程方式发送POST请求来获取相同的数据。
我看到以下变量正在发送到服务器(我是从Firebug-> Net标签获得的):
上面的代码显示了name = value对(如我的perl代码中所示)。 但是服务器没有发送正确的响应。我错过了任何未发送的帖子变量吗?
我添加了javascript和firebug作为标记,因为这些人可以通过查看html代码轻松找到我发送的任何缺失值。
答案 0 :(得分:1)
首先,您正在形成的请求来自它所在的站点(这是一个跨站点请求)吗?
其次,您尝试将VIEWSTATE
的副本发送到服务器,它将无法正常工作。视图状态是一个特殊加密的字符串,其中包含有关当前页面的所有状态信息,cookie等,并将随每次加载而变化。服务器将拒绝任何使用其他方法发回的尝试。
答案 1 :(得分:1)
__EVENTVALIDATION
和__VIEWSTATE
不太重要吗?此外,给定字段名称,是否可能每个会话导出这些值以防止外部访问?
如果你没有得到你期望的回应,我会首先检查你的请求的性质 - 我的猜测是你试图“切入”一个过程的中间,这个过程的目的是要求你从一开始。因此,您可能必须从头开始处理您的卷曲请求 - 首先请求初始页面(启用cookie)以建立会话ID,然后发送请求以“选择”第一个组合的值,然后另一个请求选择城市。