有朋友忽然在問 HTTPS 怎麼直接進行連接,想說乾脆直接整理一下好了;連接不外是透過 WebRequest 這個類別去操作,一個是直接使用 HttpWebRequest,另一個是使用 WebClient 這個 Component ,以下附上針對這兩者的簡單範例。
兩個方式中,比較需要注意的是強制讓憑證通過,一般瀏覽器憑證不通過還是會顯示出來,但是在程式這邊,不通過的話,後續就不會有結果;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| void Main() { var url = "https://www.moi.gov.tw/"; string results;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.AutomaticDecompression = DecompressionMethods.GZip;
request.ClientCertificates.Add(new System.Security.Cryptography.X509Certificates.X509Certificate());
HttpWebResponse resp = (HttpWebResponse)request.GetResponse(); using (StreamReader sr = new StreamReader(resp.GetResponseStream())) { results = sr.ReadToEnd(); sr.Close(); } results.Dump(); }
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| void Main() { string html = string.Empty; string url = @"https://www.moi.gov.tw/";
WebClient wc = new WebClient();
wc.Encoding = Encoding.UTF8; html = wc.DownloadString(url); html.Dump(); }
|
參考資料