使用HTTPS 中的WebRequest 存取SSL 加密網站
嘗試使用WebRequest 從HTTPS URL 擷取內容時,開發人員可能會遇到錯誤,如果網站擁有無效的SSL 憑證。為了解決這個問題,必須採用適當的方法來處理 SSL 憑證。
標準 WebRequest 方法包括:
Uri uri = new Uri(url); WebRequest webRequest = WebRequest.Create(uri); WebResponse webResponse = webRequest.GetResponse(); ReadFrom(webResponse.GetResponseStream());
但是,對於 SSL 加密的內容,還需要一個額外的步驟是必須的。透過在Web 請求之前合併以下行:
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
AcceptAllCertifications 回呼定義為:
public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { return true; }
程式可以有效忽略任何無效的SSL 證書,從而使其能夠成功存取HTTPS 內容。當使用使用者提供的 URL(無法保證 SSL 憑證的有效性)時,此方法特別有用。
以上是如何使用WebRequest存取SSL憑證無效的HTTPS網站?的詳細內容。更多資訊請關注PHP中文網其他相關文章!