/// <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); }
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); }