예제 #1
0
        /// <summary>
        /// Método que consulta las funciones GET de un servicio Restful.
        /// </summary>
        /// <param name="parametros"></param>
        /// <param name="metodoAPI"></param>
        /// <param name="segundosTimeout"></param>
        /// <returns></returns>
        public async Task <RespuestaWeb> GetDataAsync(List <object> parametros, string metodoAPI, int segundosTimeout = 30)
        {
            RespuestaWeb respuestaWeb = null;

            var URLFinal = RestUrl + "/" + metodoAPI;

            if (parametros != null && parametros.Count > 0)
            {
                foreach (string valor in parametros)
                {
                    URLFinal += "/" + valor;
                }
            }

            var uri = new Uri(URLFinal);

            client.Timeout = new TimeSpan(0, 0, segundosTimeout * 1000);

            try
            {
                var response = await client.GetAsync(uri);

                respuestaWeb = await RespuestaWeb.LeerRespuestaHttp(response);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(@" ERROR {0}", ex.Message);
            }

            return(respuestaWeb);
        }
예제 #2
0
        public static async Task <RespuestaWeb> LeerRespuestaHttp(HttpResponseMessage respuestaHttp)
        {
            var respuesta = new RespuestaWeb();

            try
            {
                respuesta.CodigoEstado = respuestaHttp.StatusCode;

                respuesta.DescripcionEstado = respuestaHttp.ReasonPhrase;

                respuesta.EsRespuestaExitosa = respuestaHttp.IsSuccessStatusCode;

                if (respuesta.EsRespuestaExitosa)
                {
                    respuesta.DatosObtenidos = await respuestaHttp.Content.ReadAsStringAsync();
                }
                else
                {
                    respuesta.MensajeError = await respuestaHttp.Content.ReadAsStringAsync();
                }
            }
            catch
            {
                respuesta = null;
            }

            return(respuesta);
        }