Como fazer download de uma página, via HTTPWebRequest, que exija certificado Digital (SSL / HTTPS)

Olá Pessoal,

Tive a necessidade de baixar fotos e documentos de uma página de internet protegido por certificado digital. Eu possuo o Certificado de Cliente necessário, mas não sabia como fazer o download.

Vejo o código abaixo empacotado num extension method:

public static byte[] DownloadData(this System.Net.WebClient w, string url, X509CertificateCollection clientCertificates)
{
WebRequest req = WebRequest.Create(url);
req.PreAuthenticate = true;
req.UseDefaultCredentials = true;
HttpWebRequest reqWeb = (HttpWebRequest)WebRequest.Create(url);
reqWeb.ClientCertificates = clientCertificates;
reqWeb.PreAuthenticate = true;
WebResponse response = reqWeb.GetResponse();
using (BinaryReader br = new BinaryReader(response.GetResponseStream()))
{
   int buffer = 1024;
   int read;
   List<byte> donwloadedFile = new List<byte>();
   byte[] byteArray = new byte[buffer];
   do

   {
      read = br.Read(byteArray, 0, buffer);
      for (int i = 0; i < read; i++)
      {
         donwloadedFile.Add(byteArray[i]);
      }
   } while (read != 0);
   return donwloadedFile.ToArray<byte>();
}
}


Thiago Anselme
Thiago Anselme - Gerente de TI - Arquiteto de Soluções

Ele atua/atuou como Dev Full Stack C# .NET / Angular / Kubernetes e afins. Ele possui certificações Microsoft MCTS (6x), MCPD em Web, ITIL v3 e CKAD (Kubernetes) . Thiago é apaixonado por tecnologia, entusiasta de TI desde a infância bem como amante de aprendizado contínuo.

Deixe um comentário