C sharp - Adjuntar pdf HttpWebRequest POST

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 5 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Adjuntar pdf HttpWebRequest POST

Publicado por Oscar (5 intervenciones) el 12/08/2020 17:59:39
Hola. Necesito comunicarme a una URL enviando un archivo adjunto pdf mediante HttpWebRequest en un proyecto en C#, y me da error 500. Entiendo que la codificacion que realizo del archivo pdf no la estoy haciendo correctamente, pero no estoy seguro si ese puede ser el fallo. Desde mi conocimiento, el archivo debe ir codificado en base64, para ello realizo lo siquiente:

String PDF;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
string filetoexport = "C:\\Ruta\\archivo.pdf";
byte[] data = File.ReadAllBytes(filetoexport);
PDF = Convert.ToBase64String(data);
 
HttpWebRequest httpWebRequest = null;
httpWebRequest = (HttpWebRequest)WebRequest.Create(urlString);
 
 
string parameters = "";
string bound = "----BOUND";
string boundSeparator = "--" + bound + "\n";
string boundFooter = "--" + bound + "--" + "\n";
 
parameters = parameters + "Content-Disposition: form-data; name=" + "\"fileUpload\"" + "; " + "filename =" + "\""+nameFile+ ".pdf" + "\"";
parameters = parameters + "\n";
 
parameters = parameters + "Content-Type: application/pdf";
parameters = parameters + "\n" + "\n" + PDF;
parameters = parameters + "Content-Transfer-Encoding: base64";
 
parameters = parameters + "\n" + boundSeparator;
parameters = parameters + "Content-Disposition: form-data; name=" + "\"fileName\"";
 
//Set HttpWebRequest properties
httpWebRequest.Method = "POST";
httpWebRequest.KeepAlive = true;
httpWebRequest.Host = "xxxxxx.com";
httpWebRequest.Headers.Add("Origin", null);
 
byte[] bytes;
bytes = System.Text.Encoding.ASCII.GetBytes(parameters);
 
httpWebRequest.ContentLength = bytes.Length;
 
using (Stream stream = httpWebRequest.GetRequestStream())
{
    stream.Write(bytes, 0, bytes.Length);
    stream.Close();
}
 
//Sends the HttpWebRequest, and waits for a response.
httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
 
var responseString = new StreamReader(httpWebResponse.GetResponseStream()).ReadToEnd();

httpWebResponse , me devuelve error 500 y no un 200 de OK. Y no se porque, entiendo que debe ser algo de codificación del adjunto que hago en la variable PDF o de los parameters, pero no veo la solucion para ello.
Si alguien me puede dar una solución , se lo agradecería.

Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder