Beispiel #1
0
        public async Task <T> RealizarPeticionApi <T>(string url, TipoPeticionApi tipoPeticion, object data = null)
        {
            T resultado = default(T);

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(ParametrosSistema.ApiURL);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                string requestUri = url;


                var           json          = JsonConvert.SerializeObject(data);
                StringContent stringContent = new StringContent(json, Encoding.UTF8, "application/json");
                // New code:
                HttpResponseMessage response = await client.PostAsync(requestUri, stringContent);

                if (response.IsSuccessStatusCode)
                {
                    var content = await response.Content.ReadAsStringAsync();

                    resultado = JsonConvert.DeserializeObject <T>(content);
                }
                else
                {
                    var result = response.ReasonPhrase + " " + response.RequestMessage + " " + response.StatusCode;
                }
            }
            return(resultado);
        }
Beispiel #2
0
        private async Task <HttpResponseMessage> Ejecutar(string url, TipoPeticionApi tipoPeticion, object data = null)
        {
            HttpResponseMessage response = new HttpResponseMessage();

            using (var client = new HttpClient())
            {
                //var _url = new Uri(ParametrosSistema.ApiURL);
                //string miUrl = _url.AbsolutePath;
                client.BaseAddress = new Uri(ParametrosSistema.ApiURL);
                //client.BaseAddress = _url;
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                if (!String.IsNullOrEmpty(_token))
                {
                    client.DefaultRequestHeaders.Add("Authorization", "Bearer " + this._token);
                }

                string requestUri = url;


                string        json          = String.Empty;
                StringContent stringContent = null;

                if (data != null)
                {
                    json          = JsonConvert.SerializeObject(data);
                    stringContent = new StringContent(json, Encoding.UTF8, "application/json");
                }


                switch (tipoPeticion)
                {
                case TipoPeticionApi.Post:

                    response = await client.PostAsync(requestUri, stringContent);    //.ConfigureAwait(false);

                    break;

                case TipoPeticionApi.Get:
                    response = await client.GetAsync(requestUri);    //.ConfigureAwait(false);

                    break;

                case TipoPeticionApi.Delete:
                    response = await client.DeleteAsync(requestUri);    //.ConfigureAwait(false);

                    break;

                case TipoPeticionApi.Put:
                    response = await client.PutAsync(requestUri, stringContent);    //.ConfigureAwait(false);

                    break;

                default:
                    throw new Exception("No se reconoce el tipo de petición realizada (TipoPeticionApi)");
                }
            }
            return(response);
        }
Beispiel #3
0
        public async Task <T> RealizarPeticionApi <T>(string url, TipoPeticionApi tipoPeticion, object data = null)
        {
            T resultado = default(T);

            HttpResponseMessage response = await Ejecutar(url, tipoPeticion, data);//.ConfigureAwait(false);

            if (response.IsSuccessStatusCode)
            {
                var content = await response.Content.ReadAsStringAsync();//.ConfigureAwait(false);

                if (!string.IsNullOrEmpty(content))
                {
                    resultado = JsonConvert.DeserializeObject <T>(content);
                }
            }
            else
            {
                if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized && !url.Contains("recuperarContrasenia") && !url.Contains("Registrar"))
                {
                    try
                    {
                        BLL.Seguridad.SeguridadBLL seguridadBLL = new BLL.Seguridad.SeguridadBLL();
                        var token = await seguridadBLL.Autenticar(ParametrosSistema.UsuarioActual, ParametrosSistema.PasswordUsuarioActual);//.ConfigureAwait(false);

                        if (token != null)
                        {
                            this._token = token.access_token;

                            //seguridadBLL.GuardarCredencialesUsuario(token.userName, ParametrosSistema.PasswordAlmacenado, token.access_token);
                            response = await this.Ejecutar(url, tipoPeticion, data);//.ConfigureAwait(false); ;

                            if (response.IsSuccessStatusCode)
                            {
                                var content = await response.Content.ReadAsStringAsync();//.ConfigureAwait(false); ;

                                resultado = JsonConvert.DeserializeObject <T>(content);
                            }
                            else
                            {
                                var result = response.ReasonPhrase + " " + response.RequestMessage + " " + response.StatusCode;
                            }
                        }
                    }
                    catch (InvalidOperationException)
                    {
                        // user cancelled auth, so lets return the original response
                        //return response;
                        throw new Exception();
                    }
                }
                else
                {
                    try
                    {
                        var content = await response.Content.ReadAsStringAsync();

                        string a = content;
                        if (content != null && !string.IsNullOrEmpty(content) && content != a)
                        {
                            resultado = JsonConvert.DeserializeObject <T>(content);
                        }
                        else
                        {
                            resultado = default(T);
                        }
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(response.ReasonPhrase + " " + response.RequestMessage + " " + response.StatusCode);
                    }

                    //var result = response.ReasonPhrase + " " + response.RequestMessage + " " + response.StatusCode;
                }
            }
            return(resultado);
        }