Saya memiliki HttpClient yang saya gunakan untuk REST API. Namun saya mengalami kesulitan mengatur header Otorisasi. Saya perlu mengatur header ke token yang saya terima dari melakukan permintaan OAuth saya. Saya melihat beberapa kode untuk .NET yang menyarankan yang berikut,
httpClient.DefaultRequestHeaders.Authorization = new Credential(OAuth.token);
Namun kelas Kredensial apakah itu tidak ada di WinRT. Adakah yang tahu cara mengatur tajuk Otorisasi?
c#
rest
oauth
windows-runtime
Stephen Hynes
sumber
sumber
Jawaban:
Jadi cara untuk melakukannya adalah sebagai berikut,
sumber
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", "encrypted user/pwd");
Mengambil pengguna terenkripsi / pwd dari ekstensi chrome Advanced Rest Client.sumber
Saya mencari cara yang baik untuk menangani masalah ini dan saya melihat pertanyaan yang sama. Semoga jawaban ini akan membantu semua orang yang memiliki masalah yang sama menyukai saya.
referensi dari https://www.theidentityhub.com/hub/Documentation/CallTheIdentityHubApi
sumber
using
blok. (Ya, saya tahu ini kedengarannya terbalik, tetapi Anda akan membocorkan koneksi jika Anda menggunakanusing
alih-alih hanya mendaur ulang HttpClient.)Karena ini adalah praktik yang baik untuk menggunakan kembali contoh HttpClient , untuk masalah kinerja dan kelelahan pelabuhan , dan karena tidak ada jawaban yang memberikan solusi ini (dan bahkan mengarahkan Anda ke praktik buruk :(), saya taruh di sini tautan menuju jawaban yang saya buat pada pertanyaan serupa:
https://stackoverflow.com/a/40707446/717372
Beberapa sumber tentang cara menggunakan HttpClient dengan cara yang benar:
sumber
Saya setuju dengan jawaban TheWhiteRabbit tetapi jika Anda memiliki banyak panggilan menggunakan HttpClient kodenya sepertinya sedikit berulang menurut pendapat saya.
Saya pikir ada 2 cara untuk meningkatkan jawabannya sedikit.
Buat kelas pembantu untuk membuat klien:
Pemakaian:
Buat metode ekstensi:
Tidak memenangkan hadiah kecantikan tapi berhasil :)
Pemakaian:
Sekali lagi saya pikir 2 opsi di atas membuat klien menggunakan pernyataan yang sedikit kurang berulang. Perlu diingat bahwa ini adalah praktik terbaik untuk menggunakan kembali HttpClient jika Anda membuat beberapa panggilan http tapi saya pikir itu sedikit di luar ruang lingkup untuk pertanyaan ini.
sumber
Saya sedang mengatur token pembawa
Itu bekerja di satu titik akhir, tetapi tidak di titik lain. Masalahnya adalah bahwa saya memiliki huruf kecil
b
di"bearer"
. Setelah perubahan sekarang berfungsi untuk kedua api yang saya pukul. Suatu hal yang mudah terlewatkan jika Anda bahkan tidak menganggapnya sebagai salah satu tumpukan jerami untuk mencari jarum.Pastikan untuk memiliki
"Bearer"
- dengan modal.sumber
Saya sarankan kepada Anda:
Dan kemudian Anda bisa menggunakannya seperti itu:
sumber
Untuk mengatur otentikasi dasar dengan C # HttpClient. Kode berikut ini berfungsi untuk saya.
sumber
Beginilah cara saya melakukannya:
Video You-Tube ini banyak membantu saya. Silakan periksa. https://www.youtube.com/watch?v=qCwnU06NV5Q
sumber
Gunakan Dasar Otorisasi Dan Parameter Json.
sumber
Jika Anda ingin menggunakan kembali
HttpClient
, disarankan untuk tidak menggunakanDefaultRequestHeaders
karena mereka digunakan untuk mengirim dengan setiap permintaan.Anda bisa mencoba ini:
sumber
6 Tahun kemudian tetapi menambahkan ini jika itu membantu seseorang.
https://www.codeproject.com/Tips/996401/Authenticate-WebAPIs-with-Basic-and-Windows-Authen
sumber
Opsi UTF8
sumber
Menggunakan
AuthenticationHeaderValue
kelasSystem.Net.Http
perakitankita dapat mengatur atau memperbarui
Authorization
header yang ada untukhttpclient
seperti kita :sumber
BaseWebApi.cs
SubWebApi.cs
sumber
Jika Anda ingin mengirim
HttpClient
permintaan dengan Bearer Token, kode ini bisa menjadi solusi yang baik:sumber
Di net .core Anda bisa menggunakan
atau
sumber
SetBasicAuthentication()
tidak tersedia secara default sehingga harus menjadi metode ekstensi. Di mana itu didefinisikan?Mungkin lebih mudah menggunakan perpustakaan yang ada.
Misalnya, metode ekstensi di bawah ini ditambahkan dengan Identity Server 4 https://www.nuget.org/packages/IdentityModel/
sumber
Oauth Alur proses sangat kompleks dan selalu ada ruang untuk satu kesalahan atau lainnya. Saran saya adalah untuk selalu menggunakan kode boilerplate dan satu set perpustakaan untuk aliran otentikasi OAuth. Ini akan membuat hidup Anda lebih mudah.
Berikut ini tautan untuk sekumpulan perpustakaan. Perpustakaan OAuth untuk .Net
sumber
ini bisa bekerja, jika Anda menerima json atau xml dari layanan dan saya pikir ini dapat memberi Anda gambaran tentang bagaimana header dan tipe T bekerja juga, jika Anda menggunakan fungsi MakeXmlRequest (masukkan hasil dalam xmldocumnet) dan MakeJsonRequest (letakkan json di kelas yang Anda inginkan yang memiliki struktur yang sama dengan respons json) dengan cara berikutnya
sumber
sumber
Ini dapat membantu Mengatur tajuk:
sumber
HttpClient
, bukanWebClient
.