Я реализую API, созданный другими коллегами с Apiary.io, в проекте приложения для Магазина Windows.
Они показывают этот пример метода, который я должен реализовать:
var baseAddress = new Uri("https://private-a8014-xxxxxx.apiary-mock.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
using (var response = await httpClient.GetAsync("user/list{?organizationId}"))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
В этом и некоторых других методах мне нужен заголовок с токеном, который я получил раньше.
Вот изображение Postman (расширение chrome) с заголовком, о котором я говорю:
Как добавить этот заголовок авторизации в запрос?
Ответы:
При использовании GetAsync с HttpClient вы можете добавить заголовки авторизации следующим образом:
Это действительно добавляет заголовок авторизации на время жизни HttpClient, поэтому полезно, если вы заходите на один сайт, где заголовок авторизации не изменяется.
Вот подробный ТАК ответ
источник
Более поздний ответ, но потому что никто не дал это решение ...
Если вы не хотите устанавливать заголовок в
HttpClient
экземпляре, добавляя его вDefaultRequestHeaders
, вы можете установить заголовки для каждого запроса .Но вы будете обязаны использовать
SendAsync()
метод.Это правильное решение, если вы хотите повторно использовать
HttpClient
- что является хорошей практикой дляИспользуйте это так:
источник
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", your_token);
«Носитель» - недопустимый заголовок HTTPusing
но можете создать экземпляр в конструкторе и расположить вDispose()
using
на HttpClient (это плохо), я говорил на HttpRequesMessage (потому что у него есть неуправляемые буферы памяти для потоковой передачи, которые ДОЛЖНЫ быть удалены после использования). Запрос и ответ обрабатываются и должны обрабатываться при каждом запросе (в противном случае большие блоки памяти будут оставаться заблокированными в течение длительного времени).HttpClient
Можно использовать повторно, чтобы расширить.Принятый ответ работает, но может усложниться, если я захочу добавить заголовки Accept. Это то, что я закончил. Мне кажется это проще, поэтому я думаю, что буду придерживаться этого в будущем:
источник
Вы можете добавить любые заголовки, которые вам нужны
HttpClient
.Вот хороший урок об этом.
Это не просто ссылка на POST-запросы, вы также можете использовать его для GET-запросов.
источник
Следуя ответу Greenhoorn, вы можете использовать «Расширения» следующим образом:
И использовать:
источник
Иногда вам нужен только этот код.
источник