Uncatchable NullException на некоторых URL с помощью DownloadString

Это ошибка в Visual Studio 2015 или?

Exception Exception thrown: 'System.ArgumentNullException' in 
      mscorlib.dll ("Value cannot be null.") System.ArgumentNullException

Код / учебник, за которым я следовал...

https://www.codeproject.com/Tips/397574/Use-Csharp-to-get-JSON-Data-from-the-Web-and-Map-i

Для воспроизведения создайте форму приложения и добавьте кнопку с именем "button1", а для функции button1_Click добавьте этот код, http в URL не дает ошибок, https выдает ошибку...

var w = new WebClient();
string url = "https://www.msftncsi.com/ncsi.txt";
var content = w.DownloadString(url);
MessageBox.Show(content);

1 ответ

Если вы просто используете код, вы должны позвонить https, она не будет работать. Попробуйте импортировать эти пространства имен:

using System.Security.Cryptography.X509Certificates;
using System.Net.Security;

Затем сделайте это для проверки сертификата:

System.Net.ServicePointManager.ServerCertificateValidationCallback =
    delegate (object sender, X509Certificate certificate, 
    X509Chain chain, SslPolicyErrors sslPolicyErrors) 
    { return true; };

Тогда это должно работать:

var w = new WebClient();
string url = "https://www.msftncsi.com/ncsi.txt";
var content = w.DownloadString(url);

Пожалуйста, прочтите это также, чтобы знать, почему вышеуказанный подход может быть опасным.

Другие вопросы по тегам