在 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 關注
- 145 瀏覽
添加回答
舉報
0/150
提交
取消
