在 WinForm 用下面的方法可以打开页面并同时通过 GET 传参实现自动登录,string s = "http://www.xxx.com/send.aspx?user=aaa&pass=bbb";System.Diagnostics.Process.Start(s)
1 回答
MMMHUHU
TA贡献1834条经验 获得超8个赞
可以用HttpWebRequest和HttpWebResponse
或者WebRequest和WebResponse
//调用方法 Dictionary< string , string > postData = new Dictionary< string , string >(); postData.Add( "user" , "aaa" ); postData.Add( "pass" , "bbb" ); GetPageByPost( "http://www.xxx.com/send.aspx" , postData, Encoding.UTF8); /// <summary> /// 以 Post 方式提交网页数据,获得服务器返回的数据 /// </summary> /// <param name="url"> Url </param> /// <param name="postData">Post 数据</param> /// <param name="encoder">网页编码</param> /// <returns>服务器返回的数据</returns> public string GetPageByPost( string url, Dictionary< string , string > postData, Encoding encoder) { string html = "" ; HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(url); webReq.Method = "POST" ; Stream reqStream = null ; if (postData != null && postData.Count > 0) { StringBuilder sb = new StringBuilder(); foreach (KeyValuePair< string , string > kv in postData) { sb.Append(HttpUtility.UrlEncode(kv.Key)); sb.Append( "=" ); sb.Append(HttpUtility.UrlEncode(kv.Value)); sb.Append( "&" ); } byte [] data = Encoding.UTF8.GetBytes(sb.ToString().TrimEnd( '&' )); webReq.ContentType = ContentType; webReq.ContentLength = data.Length; reqStream = webReq.GetRequestStream(); reqStream.Write(data, 0, data.Length); } HttpWebResponse webResp = (HttpWebResponse)webReq.GetResponse(); Stream stream = webResp.GetResponseStream(); StreamReader sr = new StreamReader(stream, encoder); html = sr.ReadToEnd(); sr.Close(); stream.Close(); if (reqStream != null ) { reqStream.Close(); } return html; } |
- 1 回答
- 0 关注
- 98 浏览
添加回答
举报
0/150
提交
取消