En este video te mostrare como puedes hacer una solicitud por el protocolo Post a un servicio enviando un objeto serializado como Json.
Etiqueta: WebRequest
¿Cómo realizar una solicitud Get y deserializar el json resultado en una clase en C# .Net Core?
En este video te mostrare como puedes hacer una solicitud por el protocolo Get a un servicio web, obtener el json resultado y este deserializarlo en un objeto, todo en un solo video.
Curso de C# .Net
En este curso me enfoco a los aspectos de C# .Net directamente sin tanta teoria. El curso es grabado en vivo como los mejores programas de la televisión, en vivo y con errores.
Aquí no veras Programación Orientada a Objetos, que son las sentencias if o while, estos conceptos ya los debes conocer, e igual hay miles de sitios aburridos que te lo enseñan.
Yo me enfocare a enseñarte C# .Net de una manera original, directo al grano, todo con el fin de que te sirva como una herramienta real de trabajo.
A partir del video 2 comenzaremos a realizar un chat multiplataforma, el cual estará conectado por medio de un servicio web al cual se comunicara un sistema hecho en MVC y otro en Windows Form.
La lista de videos esta ordenada conforme van saliendo y se encuentran aquí abajo. (Igual puedes dar clic a uno y seguir la lista de reproducción)
Código del curso (se actualiza cada que hay nuevos videos): clic aquí
1. Introducción
2. Entornos y arquitectura (Windows Form, MVC, MVC Api)
3. Publicación y configuración de IIS
4. Json a Objeto, recibir datos por POST
5. Serializar y deserializar objetos, generics, enviar datos por POST
6. Creación de librerías, ¿Que es el administrador de paquetes NuGet?, appsettings
7. Vistas en MVC .Net, Razor
8. Validaciones con DataAnnotatios en MVC .Net
9. Autentificación en MVC API .Net
10. Autentificación en MVC .Net utilizando servicio web, filtros, seguridad
11. Solicitudes remotas en tiempo real con SignalR
12. Verificar Access Token, regresar listado en json
13. Utilizar if y try catch en LINQ con Lambda
14. Enviar y recibir datos en tiempo real con SignalR
15. Seguridad y grupos en SignalR
16. Introducción a Windows Forms
17. Sesiones en windows forms
18. Creación de elementos dinámicamente en windows forms
¿Cómo enviar un objeto json en una solicitud Get o Post en C# .Net?
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");