定时查询银行余额的http请求有问题。。。。

ruolins 2014-07-14 06:59:23
1:请求标头

这个refrer地址 是 https://mybank.icbc.com.cn/servlet/ICBCINBSCenterServlet?dse_sessionId=w41L8ABhFXGkM9UWrsQ7vgY

2:请求正文


3:要获取的响应数据。。。


public string GetPage(string SessionId)
{
// string requestUrl = "https://mybank.icbc.com.cn/servlet/ICBCINBSCenterServlet?SessionId=" + SessionId + "&cardNum=6222021714005347673&acctNum=&acctType=&acctCode=00000&cashSign=0&currType=001&operatorFlag=0&tranflag=1&tranCode=A00012";
string requestUrl = "https://mybank.icbc.com.cn/servlet/ICBCINBSCenterServlet?dse_sessionId=iCK8Z8Fz1NzaurOxWGy438U&SessionId=iCK8Z8Fz1NzaurOxWGy438U&cardNum=6222021714005767673&acctNum=1714122001102659453&acctType=011&acctCode=00000&cashSign=0&currType=001&operatorFlag=0&tranflag=1&tranCode=A00012";

Stream instream = null;
StreamReader sr = null;
HttpWebResponse response = null;
HttpWebRequest request = null;

try
{
// 设置参数
request = WebRequest.Create(requestUrl) as HttpWebRequest;
request.Method = "Post"; //请求方式GET或POST
request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
request.UserAgent= "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)";

request.Accept = "application/json, text/javascript, */*; q=0.01";
request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";

//发送请求并获取相应回应数据
response = request.GetResponse() as HttpWebResponse;

if (response.StatusCode == HttpStatusCode.OK)
{
//直到request.GetResponse()程序才开始向目标网页发送Post请求
instream = response.GetResponseStream();
sr = new StreamReader(instream, Encoding.Default);
//返回结果网页(josn)代码
string content = sr.ReadToEnd();
return content;
}
else
{

}
return "";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "服务连接", MessageBoxButtons.OK, MessageBoxIcon.Error);
return "";
}
}


上面是我的代码。这个方法返回的内容是
"\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n\r\n<HTML>\r\n<HEAD>\r\n<script type=\"text/javascript\">\r\n\tvar win8_pad_newflag = false;\r\n\ttry{\r\n\t\tif(typeof window.external.notify ===\"unknown\"){//win8 pad\r\n\t\t\twin8_pad_newflag = true;\r\n\t\t}\r\n\t}catch(e){\r\n\t}\r\n</script>\r\n</HEAD>\r\n<BODY>\r\n\r\n</BODY>\r\n\r\n <script language=\"JavaScript\">\r\n\r\n \t\tvar parentstr = \"parent\";\r\n\r\n \t\t//最多循环5次\r\n \t\tfor(var i=0;i<5;i++){\r\n \t\t\ttry{\r\n\t\t\t\tvar parentobj = eval(parentstr);\r\n\t\t\t\tparentobj.topFrame.logoffFlag=\"0\";break;\r\n \t\t}catch(Exception){\r\n \t\t\tparentstr = \"parent.\" + parentstr ;\r\n \t\t\tcontinue;\r\n \t\t}\r\n \t\t}\r\n \r\n\t\r\n \tvar iswinpadFlag=false;\r\n\t\ttry{\r\n\t\t\tiswinpadFlag=parent.WINPADFLAGforSessionerror;\r\n \t\t}catch(Exception){\r\n \t\t\tiswinpadFlag=false;\r\n \t\t}\r\n\t\tiswinpadFlag = win8_pad_newflag==true?win8_pad_newflag:iswinpadFlag;\r\n\t\tif(iswinpadFlag){\r\n\t\t\t//此也没有退出提示,所以统一跳至/icbc/coolpad/icbcerror.jsp处理\r\n\t\t\twindow.location.href=\"/icbc/coolpad/sessionerror.jsp?dse_sessionId=iCK8Z8Fz1NzaurOxWGy438U&logoffstat=0\";\r\n \t\t\t\t\t/*\t\r\n\t\t\ttry{\tparent.logoffFlag=0;\r\n\t \t\t\t\tparent.unloadpage();//winpad在此处主动触发,之后由unloadpage方法跳转至客户端。\r\n\t \t\t}catch(Exception){\r\n\t \t\t\r\n\t \t\t}\r\n\t \t\t*/\r\n\t\t}else{\r\n\t \ttop.location.href=\"/icbc/perbank/icbcerror.jsp?dse_sessionId=iCK8Z8Fz1NzaurOxWGy438U\";\r\n\t }\r\n \r\n \r\n</script>\r\n\r\n\r\n\r\n</HTML>\r\n"


但是我想要获取的是上面【3】返回的内容。。。。而不是这个数据,不知道是什么原因。。。。
请求的url 我是用请求标头+请求正文构造的。。。。。不知道是不是这里有问题。。。。求大神指点。。。
...全文
206 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruolins 2014-07-17
  • 打赏
  • 举报
回复
引用 3 楼 findcaiyzh 的回复:
这个每次登录的sessionid应该不同吧,我觉得得先模拟登录,取得跳转的url中的sessionid在模拟请求。
是不同的,这个上面只是我一次的session,这个不是固定的。 已经做完了,结贴。。。
宝_爸 2014-07-15
  • 打赏
  • 举报
回复
这个每次登录的sessionid应该不同吧,我觉得得先模拟登录,取得跳转的url中的sessionid在模拟请求。
devmiao 2014-07-14
  • 打赏
  • 举报
回复
cookie都没带上,别的就不用看了。
ruolins 2014-07-14
  • 打赏
  • 举报
回复
我想获取的是json格式的数据,但是不知道用firbug 追踪的获取的响应数据时上面的3,但是我自己构造了一个请求,获取的数据就不对。。。。不知道是我哪里出错了。。。。

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧