Ahora que estamos en la era de los webservice todos tenemos la necesidad de saber la forma de enviar datos por medio de Get o Post. En C# la forma de hacer una solicitud a un servicio o a un api es muy sencilla y en el siguiente ejemplo te muestro como hacerlo por medio de una clase que yo hice.
La clase siguiente está preparada para enviar cualquier tipo de objeto ya que recibe el tipo de objeto que se enviara y lo serializa en json.
Recuerda que si el objeto tiene referencias circulares, la siguiente clase no funcionara.
Clase:
public class RequestHdeleon //esta clase nos sirve para tener control del resultado regresado por la solicitud public class Reply { public Reply() { this.success = 0; message = ""; } public int success { get; set; } public object data { get; set; } public String menssage { get; set; } } public Reply Send<T>(string url,T objectRequest, string method="POST"){ try { Reply oReply= new Reply(); JavaScriptSerializer js = new JavaScriptSerializer(); //serializamos el objeto string json = Newtonsoft.Json.JsonConvert.SerializeObject(objectRequest); //peticion WebRequest request = WebRequest.Create(url_callback); //headers request.Method = method; request.PreAuthenticate = true; request.ContentType = "application/json;charset=utf-8'"; request.Timeout = 10000; //esto es opcional using (var streamWriter = new StreamWriter(request.GetRequestStream())) { streamWriter.Write(json); streamWriter.Flush(); } var httpResponse = (HttpWebResponse)request.GetResponse(); using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) { result = streamReader.ReadToEnd(); } oReply.success = 1; //y aquí va nuestra respuesta, la cual es lo que nos regrese el sitio solicitado oReply.data = result; }catch(Exception e){ oReply.result = 0; //en caso de error lo manejamos en el mensaje oReply.menssage = e.Message; } return oReply; } }
Ejemplo de como utilizarla:
public class UnaClase(){ public string algo{get;set;} } //creamos la clase para enviar los parametros UnaClase oUnObjeto= new UnaClase(); oUnObjeto.algo="pato feliz"; //Creamos el objeto para solicitud RequestHdeleon oRequest= new RequestHdeleon(); //primer parametro url //segundo parametro el objeto //tercer parametro el metodo: POST, GET, PUT, DELETE RequestHdeleon.Reply oReply=oRequest.Send<UnaClase>("http://somesite.com/api/somecontroller/",oUnObjeto,"POST");