|
本人安卓手机上安装一款内部办公APP,里面有一个查询功能,在使用过程中用手机查询实在不方便,今天一直寻思有什么好办法把这个查询功能移植到自己的Winform中,下午突然想到苏飞老大的万能框架,在老大的指导下实现了自己想要的功能。下午发帖求助过,因数据是内部数据,下午发帖求救过程中涉及到服务器IP等,所以我把原帖修改了,留言让老大把帖删了,再次向苏飞老大说声对不起。同时对于苏飞老大的指导,再次表示感谢! 下面说说实现过程吧:
第一步:抓取APP数据包。
方法详见:http://www.netfoucs.com/article/jiangwei0910410003/68717.html
第二部:使用万能框架获得想要的数据
主要代码:
HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
URL = "http://服务器IP:8080/phoneserver/phserver",//URL 必需项
Method = "post",//URL 可选项 默认为Get
IsToLower = false,//得到的HTML代码是否转成小写 可选项默认转小写
Cookie = "",//字符串Cookie 可选项
Referer = "",//来源URL 可选项
Postdata = "<?xml version='1.0' encoding='GBK'?><Packet>"
+ "<Head><RequestType>V002</RequestType><User>****</User><Password>******</Password></Head><Body><BasePart><QueryType>04</QueryType><PolicyNo/>"
+ "<LicenseNo/>"
+ "<FrameNo>"+textBox1.Text.Trim()+"</FrameNo>"
+ "<FrameLastSixNo/>"
+ "<EngineLastSixNo/>"
+ "<PageNo>1</PageNo>"
+ "</BasePart>"
+ "</Body></Packet>",//Post数据 可选项GET时不需要写
Timeout = 100000,//连接超时时间 可选项默认为100000
ReadWriteTimeout = 30000,//写入Post数据超时时间 可选项默认为30000
UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统 可选项有默认值
ContentType = "application/x-www-form-urlencoded",//返回类型 可选项有默认值
Allowautoredirect = false,//是否根据301跳转 可选项
//CerPath = "d:\123.cer",//证书绝对路径 可选项不需要证书时可以不写这个参数
//Connectionlimit = 1024,//最大连接数 可选项 默认为1024
ProxyIp = "",//代理服务器ID 可选项 不需要代理 时可以不设置这三个参数
//ProxyPwd = "123456",//代理服务器密码 可选项
//ProxyUserName = "administrator",//代理服务器账户名 可选项
ResultType = ResultType.String
};
HttpResult result = http.GetHtml(item);
string html = result.Html;
string cookie = result.Cookie;
richTextBox1.Text = html;
获取结果:
截图
|
|