【问题标题】:Using cURL to POST data to a form使用 cURL 将数据 POST 到表单
【发布时间】:2012-03-15 19:25:43
【问题描述】:

我正在尝试使用 cURL 将数据发布到此 URL 上的表单:

  http://dq.sdc.bsnl.co.in/dq/reversePhone.seam?cid=812363

查看其来源,表单看起来像

<form id="revPhone" name="revPhone" method="post" action="/bsnl-web/reversePhone.seam;jsessionid=D238FA7A23A89A38C56B808B96F5D212" enctype="application/x-www-form-urlencoded" onkeyup="if (!check2(event)) {return false;};A4J.AJAX.Submit('loader2','revPhone',event,{'eventsQueue':'myqueue','parameters':{'revPhone:j_id16':'revPhone:j_id16'} ,'actionUrl':'/bsnl-web/reversePhone.seam;jsessionid=D238FA7A23A89A38C56B808B96F5D212','requestDelay':5} )">

<input type="hidden" name="revPhone" value="revPhone" />
<input type="hidden" name="revPhone:j_id12" />
<input id="revPhone:firstField" type="text" name="revPhone:firstField" maxlength="8" onkeydown="return removeEnter1(event)" />
<input id="revPhone:city" type="text" name="revPhone:city" value="Enter City Name" onblur="defaultText1();hideImage()" onfocus="defaultText2()" onkeyup="showImage(event)" />

此处粘贴代码:http://hastebin.com/wihunayilu.xml

使用这些值尝试 curl:

curl --data "revPhone:firstField=24988872&revPhone:city=CHENNAI" http://dq.sdc.bsnl.co.in/dq/reversePhone.seam?cid=812363 

我最终再次得到相同的页面作为响应。我怎样才能看到(使用 firebug?)哪些参数被传递到一个 post 表单,以便我可以正确地将请求发送到服务器?

非常感谢

【问题讨论】:

标签: ajax curl


【解决方案1】:

表单使用 ajax 发布到一个 URL,该 URL 返回一个带有元标记重定向的页面。我看到参数所做的是在调试器打开的情况下提交表单(我使用了 chrome 的开发工具,但这也可能在 firebug 中工作),然后在调用完成之前快速按退出键。参数看起来像这样:

AJAXREQUEST:loader2
revPhone:revPhone
revPhone:j_id12:
revPhone:firstField:24988872
revPhone:city:CHENNAI
revPhone:suggestionBoxId_selection:
javax.faces.ViewState:j_id4
revPhone:search:revPhone:search

响应是:

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta name="Ajax-Response" content="redirect" />
<meta name="Location" content="/bsnl-web/debug.seam;jsessionid=(some JSESSIONID)?cid=877632" />
</head></html>

(我删除了我的 jsessionid)

我的卷发线是:

curl --data "AJAXREQUEST=loader2&revPhone:suggestionBoxId_selection=&javax.faces.ViewState=j_id4&revPhone:search=search&revPhone=revPhone&revPhone:j_id12=&revPhone:firstField=24988872&revPhone:city=CHENNAI" http://dq.sdc.bsnl.co.in/dq/reversePhone.seam?cid=812363

【讨论】:

  • 太棒了,汤姆!我从来不知道有人能看到这样的参数。但是,一个问题是,您的卷曲线没有得到我正在寻找的响应,即搜索结果。它只是一个空白的 HTML 页面。有没有办法得到结果?
  • 看起来您必须在请求中发送 JSESSIONID cookie,否则您将获得调试重定向。无论如何,这应该是一个两步过程:卷曲页面,并且在响应中“位置”元标记具有您想要的结果 URL
猜你喜欢
  • 2014-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-23
  • 1970-01-01
  • 2012-07-14
  • 1970-01-01
相关资源
最近更新 更多