Проблема с авторизацией с помощью HttpClient
У нас есть внешнее приложение, которое имеет веб-API/сервис для использования из нашего внутреннего программного обеспечения или других приложений.
Во всяком случае, я просто не могу заставить HttpClient работать. Он работает со старыми веб-клиента, или с помощью RestClient среди других инструментов.Я просто не могу заставить его работать с HttpClient, и это действительно раздражает меня, так как я не знаю, почему. IP-адрес и ключ API являются поддельными.
Так что с RestClient и другими techonlogies это работает:
public async Task<List<Employee>> LoadEmployees() { var client = new estClient("http://99.99.99.99:8080/api/v2/employee/"); var request = new RestRequest(Method.GET); request.AddHeader("cache-control", "no-cache"); request.AddHeader("accept-encoding", "gzip, deflate"); request.AddHeader("Host", "99.99.99.99:8080"); request.AddHeader("Cache-Control", "no-cache"); request.AddHeader("Accept", "*/*"); request.AddHeader("Authorization", "apwerfhafdh>0923817adfhhasfd<9"); request.AddHeader("Content-Type", "application/json"); IRestResponse responseData = await client.ExecuteGetTaskAsync(request); if (responseData.StatusCode == System.Net.HttpStatusCode.OK) { List<Employee> emps = JsonConvert.DeserializeObject<List<Employee>>(responseData.Content); return emps; } else { throw new Exception($"{responseData.StatusCode} : {responseData.StatusDescription}"); } }
но с HttpClient я не могу заставить работать часть авторизации.
Что я уже пробовал:
Client= new HttpClient(); Client.DefaultRequestHeaders.Accept.Clear(); Client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); Client.DefaultRequestHeaders.Add("Accept", "*/*"); Client.DefaultRequestHeaders.Add("accept-encoding", "gzip, deflate"); Client.DefaultRequestHeaders.Add("Authorization", "X-ApiKey apwerfhafdh>0923817adfhhasfd<9"); // I get Unathorized //Client.DefaultRequestHeaders.Add("Authorization", "apwerfhafdh>0923817adfhhasfd<9"); // I get System.FormatException //CLient.DefaultRequestHeaders.Add("X-ApiKey", "apwerfhafdh>0923817adfhhasfd<9"); I get Unauthorized //Client
F-ES Sitecore
Вы устанавливаете заголовок авторизации, чтобы быть разными вещами. В одном это просто ключ, в другом у вас есть X-Apikey перед ним.