Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Black.scorpion.x en 31 Marzo 2018, 22:56 pm



Título: WebBrowser abrir documento PDF con método Post y luego guardar el archivo
Publicado por: Black.scorpion.x en 31 Marzo 2018, 22:56 pm
Estimados.
Queria hacer una pregunta ya que tengo la siguiente duda me encuentro trabajando con C# necesito extraer unos documentos PDF.
Estos documentos PDF se genera en una URL. Esta URL envía por método POST el siguiente parámetro dtaDoc. Este parámetro datDoc envía datos cifrado. Para que formulario que esta en la URL recibe el valor del parámetro datDoc genera un documento PDF.
Ahora me encuentro utilizando WebBrowser el cual paso por método Post el campo y valor cifrado. Me genera el documento PDF. El segundo paso almacenar ese documento PDF en directorio en mi computadora.
Trato de almacenar este archivo por medio de WebBroser.FileDownload pero me encuentro con el siguiente problema ya que tengo que tener dos url el path de origen del documento y el segudo Path es la destino donde se almacenan el documento PDF en mi maquina Local. Pero el path de origen no lo alcanzo a mueve este parámetro dtaDoc ya que esta con el método. Pero no puedo hacer que pasarle el parámetro con valor cifra para así generar el documento y copiarlo.
Estoy tratato de general el levantar el generar el documento el con el campo dtaDoc con Webclient al cual genero paso la URL con parámetro dtaDoc con el valor cifra para luego realizar un File.WriteAllBytes para almacenar el archivo Bynario y me lo descargue en mi computadora pero cuando abro el documento el PDF que genero con el Webclient me dice que el archivo esta corrupto.

Código
  1. String nombre = "Causar-" + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second + ".pdf";
  2. string postData = "dtaDoc=" + strDocumento;
  3. System.Text.Encoding encoding = System.Text.Encoding.UTF8;
  4. byte[] bytes = encoding.GetBytes(postData);
  5.  
  6. Console.Write("URL Documento " + "https://midominio/" + strURL + " dtaDoc=" + strDocumento  + "\r\n");
  7. webDocumento.Navigate("https://midominiol/" + strURL, string.Empty, bytes, "Content-Type: application/x-www-form-urlencoded");
  8. //  webDocumento.FileDownload("https://midominio/" + strURL, "C:\\Temporal\\" + nombre);                                                      
  9. //byte[] bte = webDocumento
  10. using (WebClient client = new WebClient())
  11. {
  12. var reqparm = new System.Collections.Specialized.NameValueCollection();
  13. reqparm.Add("dtaDoc", strDocumento);
  14.  //  byte[]
  15. byte[] responsebytes = client.UploadValues("https://oficinajudicialvirtual.pjud.cl/" + strURL, "POST", reqparm);
  16. string responsebody = Encoding.UTF8.GetString(responsebytes);
  17. File.WriteAllBytes("C:\\Temporal\\" + nombre , responsebytes);
  18. client.Dispose();
  19. }