在 WinForm 中開啟頁面採用POST方式傳參
阿新 • • 發佈:2018-11-10
//呼叫方法 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 = "application/x-www-form-urlencoded"; 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();
可以用HttpWebRequest和HttpWebResponse
或者WebRequest和WebResponse