http://www.ems.com.cn/qcgzOutQueryAction.do?reqCode=gotoSearch
这个网站提供在线查询ems邮件状态的功能,现在我们要把这个功能集成到我们自己的系统中自动去运行,就是说要省去人工去这个网站输入邮件号码查询的步骤,系统自动提交邮件号码,自动处理返回来的数据。
我就想知道这个自动模拟提交的动作如何去实现?
我用httpclient可以去模拟这个动作,但是他页面上有个隐含域 <input type="hidden" name="myEmsbarCode" value="5356189693738"/>他应该是每次在提交的时候都会去校验这个值。
所以我先把进入这个表单页的数据抓下来,得到这个隐含域的值,然后再模拟提交,但是返回来的数据还是提示这个验证码不正确。
这个有没有办法去解决?
这个网站提供在线查询ems邮件状态的功能,现在我们要把这个功能集成到我们自己的系统中自动去运行,就是说要省去人工去这个网站输入邮件号码查询的步骤,系统自动提交邮件号码,自动处理返回来的数据。
我就想知道这个自动模拟提交的动作如何去实现?
我用httpclient可以去模拟这个动作,但是他页面上有个隐含域 <input type="hidden" name="myEmsbarCode" value="5356189693738"/>他应该是每次在提交的时候都会去校验这个值。
所以我先把进入这个表单页的数据抓下来,得到这个隐含域的值,然后再模拟提交,但是返回来的数据还是提示这个验证码不正确。
这个有没有办法去解决?
解决方案 »
- ssh整合中,ajax访问一个action页面会跳转吗?
- 基于WEB,使用BIRT导出报表的问题
- jsp中如何取出所求的百分比的小数点后两位
- div中用什么属性可以替代 cellspacing="0" cellpadding="0"呢两个表格中的属性
- 一个数据源问题
- 怎么把JS的变量赋值给JSP的变量
- 请问:系统捕获的异常显示为:“IIlegal Pattern Character 'Y' ”这可能是什么原因造成的能?请高手指点一下!谢谢了!
- 问一个极菜得问题:jbuilder+weblogic运行jsp文件?
- 如何防止网页被浏览器自动缓存?
- 怎么学javascript?
- 怎么样设计对外接口
- 分页出错:by zero
关于提取EMS网站内容
url="http://www.ems.com.cn/qcgzOutQueryAction.do?reqCode=gotoSearch"
url2 = "http://www.ems.com.cn/qcgzOutQueryAction.do"
mailNum= "EU548271726CN" call emsQuery(url,url2,mailNum)
Sub emsQuery(url,url2,mailNum)
set objXMLHTTP = Server.CreateObject("MSXML2.XMLHTTP.5.0")
objXMLHTTP.open "GET", ""&url&"", false
objXMLHTTP.setRequestHeader "Referer",""&url&""
objXMLHTTP.send()
if InStr(objXMLHTTP.responseText, "myEmsbarCode") then
myEmsbarCode=right(replace(replace(replace(RemoveHTML(objXMLHTTP.responseText),"""",""),"=","")," ",""),13)
response.Write " <script>alert("&myEmsbarCode&"); </script>"
end if '取得了myEmsbarCode的值后开始执行查询
set objXMLHTTP2 = Server.CreateObject("MSXML2.XMLHTTP.5.0")
objXMLHTTP2.open "POST", ""&url2&"", false objXMLHTTP2.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objXMLHTTP2.setRequestHeader "Referer",""&url2&"" objXMLHTTP2.send("reqCode=browseBASE&myEmsbarCode="&myEmsbarCode&"mailNum="&mailNum&"")
response.Write objXMLHTTP2.responseText set objXMLHTTP2 = nothing End Sub
Function BytesToBstr(body)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = "GB2312"
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function function RemoveHTML(strHtml) Dim objRegExp, Match, Matches
Set objRegExp = New Regexp
objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "name=""myEmsbarCode"" value=""(\d*)""" ' 设置模式。 Set Matches = objRegExp.Execute(strHTML)
For Each Match in Matches
RemoveHTML=Match.Value Next end function
是不是他的隐藏域的值不是固定的呢。