HttpClient добавляет ключ API к заголовку - PullRequest
0 голосов
/ 25 октября 2019

Добрый день! Я использую API, который использует API Key. Я использую

HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("APIKEY", Token);

, но, похоже, он возвращает внутреннюю ошибку сервера всякий раз, когда я использую это. Однако, если я пытаюсь использовать HttpClient.DefaultRequestHeaders.Add("APIKey", Token);, похоже, что API не возвращает внутреннюю ошибку сервера. Есть ли способ сделать это?

Ответы [ 2 ]

2 голосов
/ 25 октября 2019

Сначала вам нужно будет лучше понять API, с которым вы работаете.

Первая проверка:

  1. При использовании HttpClient.DefaultRequestHeaders.Add("APIKey", Token); - возвращает ли это ожидаемый ответ? В некоторых случаях веб-сервер может вернуть http-код состояния 200 (или другой код, указывающий на успешность) и одновременно отобразить страницу с ошибкой.
  2. Если на pt. 1 вы получите правильный и ожидаемый ответ - тогда вам, вероятно, придется проверить, действительно ли API ожидает заголовок «Authorization» или заголовок «APIKey» - некоторые API могут использовать не стандартный заголовок «Authorization», а собственный.
0 голосов
/ 25 октября 2019

Вызов HttpClient.DefaultRequestHeaders.Authorization устанавливает значение заголовка Authentication, тогда как во втором случае вы задаете заголовок с именем API key.

Заголовок аутентификации имеет следующий формат: <scheme> <value>,где схема - это тип используемой вами аутентификации (базовый, переносной и т. д.).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...