#c# #vb.net #httpclient #request-headers
#c# #vb.net #httpclient #запрос-заголовки
Вопрос:
Я здесь уже 2 дня, что сводит меня с ума.
Все, что я хочу сделать, это вызвать веб-сервис по адресу:
https://use-land-property-data.service.gov.uk/api/v1/datasets
Который возвращает некоторый объект JSON.
Для этого требуется, чтобы заголовок «Authorization» был установлен с помощью ключа API, который у меня есть.
Я пробовал это в POSTMAN, и это работает.
Однако попытка заставить работать версию Webclient или Httpclient в настоящее время мне недоступна. Я перепробовал бесчисленное количество примеров здесь, на SO. Ни один из них не возвращает те же ответы, что и POSTMAN. Все возвращают «Запрос отклонен»
например
Using client = New HttpClient()
client.DefaultRequestHeaders.Add("Authorization", "MYKEY")
Dim response = Await client.GetStringAsync("https://use-land-property-data.service.gov.uk/api/v1/datasets")
Return response
End Using
что эквивалентно httpclient
для репликации заголовка postman Authorization
?
Комментарии:
1. Почему вы используете
WebClient
in 2021?2. Кроме того, почему вы используете VB.NET ?
3. Ваш код выглядит нормально как есть, поэтому в вашем сообщении отсутствует что- то еще (т. Е. Код, Который вы не опубликовали).
4. Я только что сам попытался получить доступ к веб-службе реестра землепользования и столкнулся с теми же проблемами. По-видимому, веб-сервис находится в бета-версии, и я уже столкнулся с несколькими ошибками (например, он игнорирует
Accept
заголовок и всегда возвращаетtext/html
ответы). Я предлагаю вам связаться с ними напрямую и попросить их все исправить.5. HttpClient отправляет еще несколько необязательных заголовков, вы можете попробовать отключить их и т.
Expect 100-continue
Д. Я попробовал ваш запрос, но я не получаю ключ API без кредитной карты… Если у вас есть ключ API для меня, я могу попытаться помочь вам.
Ответ №1:
Попробуйте:
httpClient.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", "Your Key")