enviar varios tipos de archivo desde cliente web hacia una API con HttpWebRequest
Publicado por Mario (1 intervención) el 05/04/2022 21:53:04
Buenas tardes, solicito su ayuda ya que no encuentro documentación lo suficientemente clara sobre como hacerlo, lo que requiero es desde el cliente web enviar los datos básicos para el envío de un correo(correo, asunto) ademas de un archivo adjunto(pdf), anexo el código que he estado trabajando sin resultado ya que al ejecutar el programa me genera un error 400 solicitud incorrecta al momento de llamar a la API.
Este es el codigo que tengo en el cliente:
Este es el código que tengo del lado del API:
De antemano agradezco la ayuda que me puedan brindar, hasta pronto.
Este es el codigo que tengo en el cliente:
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
byte[] file = Encoding.UTF8.GetBytes(ms.ToString()); //Archivo Adjunto pdf
byte[] ODatos = System.Text.Encoding.UTF8.GetBytes(Datos.ToString());//Datos para el envío del correo
var url = "http://localhost:8324/api/SendEmails";
HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url);
wr.ContentType = "multipart/form-data";
wr.Method = "POST";
using (var stream = new StreamWriter(wr.GetRequestStream()))
{
string json = JsonConvert.SerializeObject(Datos);
stream.Write(ODatos.ToString(),0,ODatos.Length);
stream.Write(file.ToString(),0,file.Length);
stream.Flush();
stream.Close();
}
WebResponse res = wr.GetResponse();
using (var SR = new StreamReader(res.GetResponseStream()))
{
var result = SR.ReadToEnd().Trim();
}
Este es el código que tengo del lado del API:
1
2
3
4
5
6
7
8
9
10
11
12
13
// POST api/<Envio_Correos>
[HttpPost]
public string Post([FromForm] GenerateDocument value, byte[] file)//en el objeto GenerateDocument se asignan los parametros de correo y asunto que se envían desde el cliente web , en el parametro file deberia de llegar el archivo adjunto que se envía desde el cliente web.
{
//value.ModifyStructure();
Email email = new Email();
email.bodyHtml = value.ModifyStructure();
email.DestinationMail = value.DestinationMail;
email.subject = value.Subject;
//email.file = value.file;
return email.SendEmail();
}
De antemano agradezco la ayuda que me puedan brindar, hasta pronto.
Valora esta pregunta


0