常見的Web頁面獲取頁面內容用 WebRequest 或者 HttpWebRequest 來操作 Http 請求。
例如,獲取百度網站的 html 頁面
var request = WebRequest.Create("http://www.baidu.com"); request.Method = "GET"; var response = request.GetResponse(); using (var stream = new System.IO.StreamReader(response.GetResponseStream())) { var content = stream.ReadToEnd();//獲取到遠程的頁面字符串 Console.WriteLine(content); }
POST 請求
var jsonToPost = "{\"name\":\"admin\",\"pwd\":\"123456\"}"; var request = WebRequest.Create("http://www.sina.com"); request.Method = "POST"; using (var requestStream = request.GetRequestStream()) { var bytes = Encoding.UTF8.GetBytes(jsonToPost); requestStream.Write(bytes, 0, bytes.Length); } var response = request.GetResponse(); using (var stream = new System.IO.StreamReader(response.GetResponseStream())) { var content = stream.ReadToEnd();//獲取 Post 返回的內容 }
還有一種方式請求,那就是HttpClient 這種方式,這種方式不常見,不過相比上面的的方式還是比較簡潔的,一句代碼就實現的肯定是好的方法嘛。
using (var http = new HttpClient()) { var content= http.GetAsync("http://www.baidu.com").GetAwaiter().GetResult() .Content.ReadAsStringAsync().GetAwaiter().GetResult(); }
POST請求
using (var http = new HttpClient()) { var jsonToPost = "{\"name\":\"admin\",\"pwd\":\"123456\"}"; var content = http.PostAsync("http://www.baidu.com", new StringContent(jsonToPost)).GetAwaiter().GetResult() .Content.ReadAsStringAsync().GetAwaiter().GetResult(); }
如果還有更好的方式后續歡迎大家一起交流學習!