使用WebRequest 透過HTTPS 以程式方式存取SSL 加密內容
透過WebRequest 與URL 互動時,由於SSL 加密而遇到困難的情況並不少見。本文旨在提供一個解決方案來克服此類挑戰。
您提供的程式碼片段嘗試從 URL 檢索內容,但當 URL 使用 HTTPS 協定時遇到錯誤。要處理這種情況,必須調整程式碼以適應 SSL 加密內容。
關鍵的解決方案在於引入 ServicePointManager.ServerCertificateValidationCallback,它是一個允許您處理 SSL 憑證驗證的委託。透過覆寫其預設行為,您可以指示代碼接受所有認證,包括那些可能無效的認證。
要實現此目的,請在發出Web 請求之前添加以下行:
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
然後,建立一個名為AcceptAllCertifications 的簡單方法以傳回true:
public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors) { return true; }
透過這些修改,您的程式碼將能夠存取和讀取使用HTTPS 加密的URL 中的內容,無論憑證的有效性如何。
以上是儘管出現 SSL 錯誤,如何使用 WebRequest 以程式方式存取 HTTPS 內容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!