2015-08-06 25 views
5

ben istisna altında atar bir https URL var atar. Ayrıca, https URL'lerinin makineden erişilebilir olup olmadığını ve herhangi bir hata olmadan erişilebildiğini, ancak kodun altında başarısız olup olmadığını kontrol ettim. Ayrıca bu sorun makineye özgüdür. Kod atma hatasınınHTTPS URL'leri bir istisna

Hattı:

using (WebDownloadClient wc = new WebDownloadClient()) 
{ 
    wc.Headers.Add("Content-Encoding", "gzip"); 
    wc.Headers.Add("Accept-Encoding", "gzip, compress"); 
    wc.DownloadFile(url, fileName); 
} 
+1

Alındığı? 'DownloadFile' yönteminin uygulanmasını sağlar mısınız? – Kamo

+1

@Kamo DownloadFile, System.Net.WebClient – Pritam

+0

'un dahili bir yöntemidir. Buna bir göz atın. http://stackoverflow.com/questions/20064505/requesting-html-over-https-with-c-sharp-webclient –

cevap

2
ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificate; 
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 ; 

    using (WebDownloadClient wc = new WebDownloadClient()) 
    { 
     wc.Headers.Add("Content-Encoding", "gzip"); 
     wc.Headers.Add("Accept-Encoding", "gzip, compress"); 
     wc.DownloadFile(url, fileName); 
    } 

private static bool ValidateRemoteCertificate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error) 
{ 
    if (error == System.Net.Security.SslPolicyErrors.None) 
    { 
     return true; 
    } 
    return false; 
} 

`WebDownloadClient` nedir Requesting html over https with c# Webclient

+0

Aşağıdaki kod satırında. Bu sadece geçerli sertifikayı kullanmaya zorlanıyor mu? ServicePointManager.CertificatePolicy = new CertificatePolicy(); – Pritam

+0

CertificatePolicy özelliği bir ICertificatePolicy arabirim nesnesine ayarlandığında, ServicePointManager nesnesi, varsayılan sertifika ilkesi yerine bu örnekte tanımlanan sertifika ilkesini kullanır. Varsayılan sertifika ilkesi geçerli sertifikalara ve geçerlilik süresinin geçerli olduğu geçerli sertifikalara izin verir. –

+0

Teşekkürler @HyunMi. Ayrıca m/c'de tarayıcımda https URL’ye erişebiliyordum, ancak yukarıdaki istisnanın üstesinden geliyorum. – Pritam