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);
Пожалуйста, прочтите это также, чтобы знать, почему вышеуказанный подход может быть опасным.