none
Consumo Api Rest RRS feed

  • Pregunta

  • Estimada Comunidad

    La verdad no conozco casi nada de como implementar en c# el consumo de API REST, me han enviado la documentación para integrar información con nuestro sistema.

    El documento técnico menciona algo así: El servicio puede ser usado para recuperación de aplicaciones, donde el tipo de servicio es web REST con  Autenticacion Basica.

    A continuación tengo como ejemplo que la llamada al servicio debe ser:

    .../api/aplicaciones/consulta/01-01-2019/31-01-2019

    Para ello he revisado en internet y supuesta mente hay varias formas de implementar usando:

    WebClient

    HttpClient

    y otras mas

    He tratado de usar varias ejemplos que hay en la web pero sin resultado alguno, aqui uno de ellos

                using (var client = new HttpClient())
                {
                    var webUrl = "http://localhost/aplicaciones/api/";
                    var uri = "api/sales";
                    client.BaseAddress = new Uri(webUrl);
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.DefaultRequestHeaders.ConnectionClose = true;

                    //Set Basic Auth
                    var user = "usuario";
                    var password = "clave123*";
                    var base64String = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{user}:{password}"));
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", base64String);

                    var result = await client.PostAsJsonAsync(uri, model);  // en esta linea tengo error de compilacion
                    return result;
                }
    Cuando hago consumo a traves del browers con la URL y autenticandome me presenta informacion en formato XML, siendo de esta manera como deberia manejarlo en c#??

    Por favor, cualquier ayuda que me pueda dar o ejemplos les agradeceria mucho.

    Saludos

    Guivan
    jueves, 1 de agosto de 2019 16:08

Todas las respuestas

  • hola

    >>Cuando hago consumo a traves del browers con la URL y autenticandome me presenta informacion en formato XML,

    recomendaria intentes invocar usando postman

    con esta tool implementas la invocacion similar a como lo harias desde codigo ya que debes incluir la autenticacion

    >>en esta linea tengo error de compilacion

    que dice el mensaje de error ?

    porque la llamada tiene que ser asincrona, intenta primero una llamada simple que sea post y valida que funcione, despues veras de hacer asincrona

    HttpClient GetAsync, PostAsync, SendAsync in C#

    aunque puedes usar el PostAsync() indicando el HttpContext como en el articulo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    jueves, 1 de agosto de 2019 17:39
  • Hola, viendo tu código se puede observar que puede que tengas las URL del servicio y de la operación del Api erróneas. Según tu pregunta el Api se encuentra en una dirección como esta. 

    api/aplicaciones/consulta/01-01-2019/31-01-2019

    Entonces las variables que contienen las urls deberían se algo así

    var webUrl = "http://localhost/";
     var uri = "api/aplicaciones/consulta";

    Entiendo que la primera variable (webUrl) debería ser la URL donde se encuentra el Api, algo así http://miservicio.com

    .esta URL es la base de todas las demás que enviaras en las peticiones.,

    Lo dicho, revisa que las direcciones sean las correctas 


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    jueves, 1 de agosto de 2019 21:32
    Moderador