Foros del Web » Programación para mayores de 30 ;) » .NET »

ENVIAR ARCHIVO A WebService RestApi con Método POST en C#

Estas en el tema de ENVIAR ARCHIVO A WebService RestApi con Método POST en C# en el foro de .NET en Foros del Web. Con el siguiente método, de una aplicación de escritorio C#: public string GetPost (string url) { string respuesta = ""; WebRequest oRequest = WebRequest.Create(url); oRequest.Method ...
  #1 (permalink)  
Antiguo 04/03/2020, 17:44
 
Fecha de Ingreso: marzo-2011
Mensajes: 9
Antigüedad: 9 años
Puntos: 0
ENVIAR ARCHIVO A WebService RestApi con Método POST en C#

Con el siguiente método, de una aplicación de escritorio C#:

public string GetPost (string url)
{
string respuesta = "";
WebRequest oRequest = WebRequest.Create(url);


oRequest.Method = "post";
oRequest.ContentType = "application/json;charset=UTF-8";

using (var oSW = new StreamWriter(oRequest.GetRequestStream()))
{
string json = "{\"alumno\":\"pedro\",\"edad\":\"15\"}";

oSW.Write(json);
oSW.Flush();
oSW.Close();
}

WebResponse oResponse = oRequest.GetResponse();

using (var oSR = new StreamReader(oResponse.GetResponseStream()))
{
respuesta = oSR.ReadToEnd().Trim();
}

return respuesta;
}

Yo envío un string Json a un WebService RestApi y me retorna un json de respuesta.

Pero ahora lo que necesito es enviar un archivo comprimido a ese webservice, en lugar de un string json. Y además debo autenticarme con un usuario y password en el webservice. Pero no logro encontrar la forma correcta de hacerlo. Algo que si he podido averiguar es que en ContentType debo poner form-data, pero no sé que más hacer? Alguien puede ayudarme.
  #2 (permalink)  
Antiguo 20/03/2020, 23:10
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.052
Antigüedad: 17 años, 4 meses
Puntos: 37
Respuesta: ENVIAR ARCHIVO A WebService RestApi con Método POST en C#

Para el caso de un webservice que ocupo y que entre sus parametros requiere el envio de un XML me lo pide como array de bytes, asi que cargo el XML asi (vb):
Dim arrayBytes() As Byte = System.Text.Encoding.UTF8.GetBytes(cadenaXML)



La zona horaria es GMT -6. Ahora son las 09:45.