jueves, 7 de abril de 2016

C# - Enviar un objeto Json a un servicio REST (Por POST)

C#, Enviar un objeto Json a un servicio REST (Por POST) 

Primero declarar el objeto que se va a envía

FirmaJson firmaJson = new FirmaJson
{
    institucion = "INTERCAPIT",
    coddocumento = "PQ80000001DC830CON",
    tipo_docto = "CONTRATODEMO"
};

//Declara el objeto con el que haremos la llamada al servicio
HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest;
//Configurar las propiedad del objeto de llamada
request.Method = "POST";
request.ContentType = "application/json";

//Serializar el objeto a enviar. Para esto uso la libreria Newtonsoft
string sb = JsonConvert.SerializeObject(firmaJson);

Convertir el objeto serializado a arreglo de byte
Byte[] bt = Encoding.UTF8.GetBytes(sb);

//Agregar el objeto Byte[] al request
Stream st = request.GetRequestStream();
st.Write(bt, 0, bt.Length);
st.Close();

//Hacer la llamada
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
//Leer el resultado de la llamada
Stream stream1 = response.GetResponseStream();
    StreamReader sr = new StreamReader(stream1);
    string strsb = sr.ReadToEnd();
}

El objeto strsb es el que contiene la respuesta del servicio, si esta respuesta es Json puedes deserializarlo

2 comentarios: