Пример #1
0
 private static void Proxy_OnConfigure(ProxyConfiguracion configuracion)
 {
     configuracion.UrlBase = System.Configuration.ConfigurationManager.AppSettings["urlBase"];
 }
Пример #2
0
        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);
        }