どのように私は、HTTPSを使用してSSL暗号化されたサイトにアクセスするためにWebRequestクラスを使用しますか?
-
05-09-2019 - |
質問
私は、ユーザーに提供されたURLからコンテンツを読み込むプログラムを書いています。私の問題は、このような何かを行くコードである。
Uri uri = new Uri(url);
WebRequest webRequest = WebRequest.Create(uri);
WebResponse webResponse = webRequest.GetResponse();
ReadFrom(webResponse.GetResponseStream());
URL:提供のURL のは、 "// https" のであれば、そして、これは破壊されます。誰もが、それはSSL暗号化されたコンテンツで動作するようにこのコードを変更することで私を助けることができます。おかげます。
解決
あなたはそれを正しい方法をやっているが、ユーザーがインストールされ、無効なSSL証明書を持つサイトへのURLを提供することができます。あなたは、実際の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;
}
他のヒント
このリンクはあなたに興味を持ってもらえるでしょう: http://msdn.microsoft .COM / EN-US /ライブラリ/ ds8bxk2a.aspxする
HTTP接続の場合は、WebRequestクラスとにWebResponseクラスは、SSLをサポートするWebホストとの通信にSSLを使用しています。 SSLを使用するという決定は、それが指定されたURIに基づいて、WebRequestクラスによって行われます。 URIが「httpsの:」で始まる場合、SSLが使用されます。 URIで始まる場合は「http:」、暗号化されていない接続が使用されている。
。
この1は私のために働いてます:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
所属していません StackOverflow