none
Crear función genérica para métodos GET, POST, PUT RRS feed

  • Pregunta

  • Hola

    Trabajo con Windows Forms, VS 2019, HttpClient quisiera crear una función genérica para los métodos GET, POST, PUT implementandolo ¿como puedo obtener tales métodos?

    public static string Send2<T>(string url, T objectRequest, string metodo)
            {
                try
                {
                    HttpClient client = new HttpClient();
                    client.BaseAddress = new Uri(url);
                    var contentType = new MediaTypeWithQualityHeaderValue("application/json");
                    client.DefaultRequestHeaders.Accept.Add(contentType);
    
                    string stringData = JsonConvert.SerializeObject(objectRequest);
                    var contentData = new StringContent(stringData, System.Text.Encoding.UTF8, "application/json");
    
                    HttpResponseMessage response = client.PostAsync()
    
                }
                catch (Exception)
                {
    
                    throw;
                }
            }

    Deseo poner por parámetro PostAsync y resto de métodos mencionados ¿hay alguna manera de hacerlo?

    Saludos!


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú


    martes, 7 de julio de 2020 17:39

Respuestas

  • hola

    >>Deseo poner por parámetro PostAsync y resto de métodos mencionados

    El PostAsync no va con ningun generico, eso es un metodo

    No se puede generalizar acciones diferentes que no tienen nada en comun, un GET no tiene nada que ver con un POST no se pueden mezclar

    es como querer hacer un generico de un SELECT y un INSERT en una tabla, son acciones incompatibles

    si defines un Send<> entonce ese sera un PostAsync, ahora si quieres un Get<> usara un GetAsync, pero son metodo diferentes

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Pedro Ávila martes, 7 de julio de 2020 21:41
    martes, 7 de julio de 2020 21:30

Todas las respuestas

  • Hola Pedro Ávila,

      

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comparto a continuación el siguientes enlace que contienen documentación oficial de como llamar una API desde un Windows Form. 

    https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-net-client?WT.mc_id=DT-MVP-5003235


    Gracias por usar los foros de MSDN. 

      

    Eric Ruiz

      

     ____________________________ 

      

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft. 

    martes, 7 de julio de 2020 18:21
    Moderador
  • Hola @EricRR

    Gracias por la respuesta pero estoy buscando la manera de hacer un método genérico que me permita hacer POST, GET, PUT.

    Igualmente gracias

    Saludos!


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    martes, 7 de julio de 2020 18:30
  • Hola,

    Podrías revisar estas documentaciones:

    Generic Method

    Generic Method GET/POST

    Eric Ruiz

    ___________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    martes, 7 de julio de 2020 18:59
    Moderador
  • hola

    >>Deseo poner por parámetro PostAsync y resto de métodos mencionados

    El PostAsync no va con ningun generico, eso es un metodo

    No se puede generalizar acciones diferentes que no tienen nada en comun, un GET no tiene nada que ver con un POST no se pueden mezclar

    es como querer hacer un generico de un SELECT y un INSERT en una tabla, son acciones incompatibles

    si defines un Send<> entonce ese sera un PostAsync, ahora si quieres un Get<> usara un GetAsync, pero son metodo diferentes

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Pedro Ávila martes, 7 de julio de 2020 21:41
    martes, 7 de julio de 2020 21:30