private static void Proxy_OnConfigure(ProxyConfiguracion configuracion) { configuracion.UrlBase = System.Configuration.ConfigurationManager.AppSettings["urlBase"]; }
protected async Task <String> ObtenerRespuesta(string url, Metodo metodo, string json = "") { if (Configuracion == null) { Configuracion = new ProxyConfiguracion(); OnConfigure?.Invoke(Configuracion); } ConfigurarSeguridad(); string urlFinal; if (url.Contains("http")) { urlFinal = url; } else { urlFinal = Configuracion.UrlBase + url; } HttpClient cliente = new HttpClient(); cliente.MaxResponseContentBufferSize = 2000000; cliente.Timeout = new TimeSpan(0, 0, 30); // Add Token if (!string.IsNullOrEmpty(OAuthToken)) { cliente.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", OAuthToken); } try { if (metodo == Metodo.POST || metodo == Metodo.PUT) { if (json != string.Empty) { var content = new StringContent(json, Encoding.UTF8, "application/json"); if (metodo == Metodo.POST) { Respuesta = cliente.PostAsync(urlFinal, content).Result; } if (metodo == Metodo.PUT) { Respuesta = cliente.PutAsync(urlFinal, content).Result; } } Stream receiveStream = await Respuesta.Content.ReadAsStreamAsync(); StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8); Resultado = readStream.ReadToEnd(); if (Resultado != string.Empty) { OnJsonResponse?.Invoke(Resultado); } } else { if (metodo == Metodo.GET) { Respuesta = cliente.GetAsync(urlFinal).Result; } if (metodo == Metodo.DELETE) { Respuesta = cliente.DeleteAsync(urlFinal).Result; } Stream receiveStream = await Respuesta.Content.ReadAsStreamAsync(); StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8); Resultado = readStream.ReadToEnd(); if (Resultado != string.Empty) { OnJsonResponse?.Invoke(Resultado); } } } catch (Exception ex) { Resultado = ex.ToString(); } return(Resultado); }