/// <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); } }
/// <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); }