Пример #1
0
        /// <summary>
        /// Solicitud token api super
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="password"></param>
        /// <param name="apiBaseUri"></param>
        /// <returns></returns>
        private static JObject RequestToken(LoginSuperRequest credenciales)
        {
            using (var client = new HttpClient())
            {
                JObject jObject = null;
                //setup client
                client.DefaultRequestHeaders.Accept.Clear();

                //setup login data
                string myJson = JsonConvert.SerializeObject(credenciales);
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

                Certificates.Instance.GetCertificatesAutomatically();
                //send request
                HttpResponseMessage response = client.PostAsync(apiBaseUri + "/api-token-auth/", new StringContent(myJson, Encoding.UTF8, "application/json")).Result;

                if (response.IsSuccessStatusCode)
                {
                    var responseJson = response.Content.ReadAsStringAsync().Result;
                    jObject = JObject.Parse(responseJson);
                }
                else
                {
                    throw new Exception(response.StatusCode.ToString());
                }

                return(jObject);
            }
        }
Пример #2
0
        /// <summary>
        /// Método de paso para obtener el token API SUPER
        /// </summary>
        /// <returns></returns>
        public static string GetToken()
        {
            var token = string.Empty;

            //verifica existe token en cache
            token = (string)MemoryCacher.GetValue("token");

            if (token == null)
            {
                LoginSuperRequest credenciales = new LoginSuperRequest
                {
                    Api_key        = ConfigurationManager.AppSettings["api_key_super"],
                    ChileAtiendeId = ConfigurationManager.AppSettings["chile_atiende_id"]
                };

                //Get the token
                var jObject = RequestToken(credenciales);
                if (jObject != null)
                {
                    token = "Token " + jObject.GetValue("token").ToString();
                    var tokenExpiracion = jObject.GetValue("expiration_date").ToString();

                    //almacena token en cache
                    MemoryCacher.Add("token", token, DateTimeOffset.Parse(tokenExpiracion));
                }
                else
                {
                    token = string.Empty;
                }
            }

            return(token);
        }