第一種:
/// <summary> /// 下載網頁源代碼 /// </summary> /// <param name="Url">網頁路徑</param> /// <returns></returns> private string DownloadCode(string Url) { try { WebClient webClient = new WebClient(); Byte[] pageData = webClient.DownloadData(Url); return Encoding.GetEncoding("utf-8").GetString(pageData); } catch (Exception ec) { throw new Exception(ec.Message.ToString()); }
第二種:
/// <summary> /// 請求地址,返回html代碼 /// </summary> /// <param name="url">地址</param> /// <param name="timeOut">設置請求的超時時間,1000=1秒</param> /// <returns></returns> public static string HttpGet(string url,int timeOut) { try { ServicePointManager.SecurityProtocol = (SecurityProtocolType)192 | (SecurityProtocolType)768 | (SecurityProtocolType)3072; string html; HttpWebRequest Web_Request = (HttpWebRequest)WebRequest.Create(url); Web_Request.AllowAutoRedirect = false; //設置請求超時時間 Web_Request.Timeout = timeOut; //請求方式GET,POST Web_Request.Method = "GET"; //請求的身份 Web_Request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"; //添加請求頭信息 Web_Request.Headers.Add("Accept-Encoding", "gzip, deflate"); Web_Request.ContentType = "application/x-www-form-urlencoded"; //Web_Request.Credentials = CredentialCache.DefaultCredentials; //設置代理屬性WebProxy------------------------------------------------- //WebProxy proxy = new WebProxy("111.13.7.120", 80); //在發起HTTP請求前將proxy賦值給HttpWebRequest的Proxy屬性 //Web_Request.Proxy = proxy; HttpWebResponse Web_Response = (HttpWebResponse)Web_Request.GetResponse(); if (Web_Response.ContentEncoding.ToLower() == "gzip") // 如果使用了GZip則先解壓 { using (Stream Stream_Receive = Web_Response.GetResponseStream()) { using (var Zip_Stream = new GZipStream(Stream_Receive, CompressionMode.Decompress)) { using (StreamReader Stream_Reader = new StreamReader(Zip_Stream, Encoding.Default)) { html = Stream_Reader.ReadToEnd(); } } } } else { using (Stream Stream_Receive = Web_Response.GetResponseStream()) { using (StreamReader Stream_Reader = new StreamReader(Stream_Receive, Encoding.Default)) { html = Stream_Reader.ReadToEnd(); } } } return html; } catch (Exception) { return "error"; } }