Saya menerapkan API yang dibuat oleh rekan kerja lainnya dengan Apiary.io, dalam proyek aplikasi Windows Store.
Mereka menunjukkan contoh metode yang harus saya terapkan:
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();
}
}
Dalam hal ini dan beberapa metode lain, saya harus memiliki header dengan token yang saya dapatkan sebelumnya.
Ini gambar Postman (ekstensi chrome) dengan header yang saya bicarakan:
Bagaimana saya menambahkan header Otorisasi ke permintaan?
Jawaban:
Saat menggunakan GetAsync dengan HttpClient Anda dapat menambahkan header otorisasi seperti:
Ini menambahkan tajuk otorisasi untuk seumur hidup dari HttpClient jadi berguna jika Anda menekan satu situs di mana tajuk otorisasi tidak berubah.
Berikut adalah jawaban SO yang terperinci
sumber
Jawaban nanti, tetapi karena tidak ada yang memberikan solusi ini ...
Jika Anda tidak ingin mengatur header pada
HttpClient
instance dengan menambahkannya keDefaultRequestHeaders
, Anda bisa mengatur header per permintaan .Tetapi Anda harus menggunakan
SendAsync()
metode ini.Ini adalah solusi yang tepat jika Anda ingin menggunakan kembali
HttpClient
- yang merupakan praktik yang baik untukGunakan seperti ini:
sumber
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", your_token);
"Pembawa" akan menjadi tajuk HTTP yang tidak validusing
tetapi bisa instantiate di konstruktor dan membuang diDispose()
using
pada HttpClient (ini buruk), saya katakan pada HttpRequesMessage (karena memiliki buffer memori yang tidak dikelola untuk streaming yang HARUS dibuang setelah digunakan). Permintaan dan responsnya adalah dan harus dibuang setiap permintaan (jika tidak, Anda akan menyimpan potongan memori besar terkunci untuk waktu yang lama). DapatHttpClient
digunakan kembali, sampai batas tertentu.Jawaban yang diterima berfungsi tetapi bisa menjadi rumit ketika saya ingin mencoba menambahkan header Terima. Inilah yang akhirnya saya lakukan. Tampaknya lebih sederhana bagi saya jadi saya pikir saya akan tetap menggunakannya di masa depan:
sumber
Anda dapat menambahkan header apa pun yang Anda butuhkan ke
HttpClient
.Ini tutorial yang bagus tentang itu.
Ini tidak hanya merujuk pada permintaan POST, Anda juga dapat menggunakannya untuk permintaan GET.
sumber
Mengikuti jawaban greenhoorn, Anda dapat menggunakan "Extensions" seperti ini:
Dan gunakan:
sumber
Terkadang, Anda hanya perlu kode ini.
sumber