/// <summary> /// Executa a criação do objeto de chamada ao WebService /// </summary> /// <returns>Http client.</returns> /// <param name="tipoChamada">Tipo chamada(Enum).</param> internal static HttpClient CreateHttpClient(EnumCallAPI tipoChamada) { var conn = new HttpClient(); var repo = new BuBlingRepository_Droid(); switch (tipoChamada) { case EnumCallAPI.Home: conn.BaseAddress = new Uri(ENDERECO_HOME); break; case EnumCallAPI.Login: conn.BaseAddress = new Uri(String.Concat(DOMAIN, ENDERECO_LOGIN)); break; case EnumCallAPI.Promo: conn.BaseAddress = new Uri(String.Concat(DOMAIN, String.Format(ENDERECO_PROMO, String.IsNullOrEmpty(App.EMAIL_USUARIO) ? repo.RetornarEmailUsuarioLogado() : App.EMAIL_USUARIO) )); break; case EnumCallAPI.Teste: conn.BaseAddress = new Uri(ENDERECO_TESTE); break; default: break; } conn.Timeout = TimeSpan.FromSeconds(15); conn.DefaultRequestHeaders.Accept.Clear(); conn.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml")); return conn; }
/// <summary> /// Executa a chamada ao serviço e retorna uma STRING /// </summary> /// <returns>String</returns> /// <param name="tipoChamada">Tipo chamada.</param> public static async Task<string> ExecChamadaAPIComRetornoString(EnumCallAPI tipoChamada) { var conn = CreateHttpClient(tipoChamada); using (conn) { try { var response = await conn.GetAsync(conn.BaseAddress); if (String.IsNullOrEmpty(await response.Content.ReadAsStringAsync())) return "Retorno vazio do servidor !"; return await response.Content.ReadAsStringAsync(); } catch (Exception ex) { return ex.Message; } } }