Bagaimana cara menambahkan tajuk khusus ke HttpClient
permintaan? Saya menggunakan PostAsJsonAsync
metode untuk memposting JSON. Header khusus yang perlu saya tambahkan adalah
"X-Version: 1"
Inilah yang telah saya lakukan sejauh ini:
using (var client = new HttpClient()) {
client.BaseAddress = new Uri("https://api.clickatell.com/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "xxxxxxxxxxxxxxxxxxxx");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = client.PostAsJsonAsync("rest/message", svm).Result;
}
c#
asp.net
http-headers
dotnet-httpclient
Libin Joseph
sumber
sumber
Jawaban:
var request = new HttpRequestMessage { RequestUri = new Uri("[your request url string]"), Method = HttpMethod.Post, Headers = { { "X-Version", "1" } // HERE IS HOW TO ADD HEADERS, { HttpRequestHeader.Authorization.ToString(), "[your authorization token]" }, { HttpRequestHeader.ContentType.ToString(), "multipart/mixed" },//use this content type if you want to send more than one content type }, Content = new MultipartContent { // Just example of request sending multipart request new ObjectContent<[YOUR JSON OBJECT TYPE]>( new [YOUR JSON OBJECT TYPE INSTANCE](...){...}, new JsonMediaTypeFormatter(), "application/json"), // this will add 'Content-Type' header for the first part of request new ByteArrayContent([BINARY DATA]) { Headers = { // this will add headers for the second part of request { "Content-Type", "application/Executable" }, { "Content-Disposition", "form-data; filename=\"test.pdf\"" }, }, }, }, };
sumber
Saya telah menemukan jawaban atas pertanyaan saya.
client.DefaultRequestHeaders.Add("X-Version","1");
Itu harus menambahkan tajuk khusus ke permintaan Anda
sumber
Berikut adalah jawaban berdasarkan jawaban dari Anubis (yang merupakan pendekatan yang lebih baik karena tidak mengubah header untuk setiap permintaan) tetapi yang lebih setara dengan kode dalam pertanyaan asli:
using Newtonsoft.Json; ... var client = new HttpClient(); var httpRequestMessage = new HttpRequestMessage { Method = HttpMethod.Post, RequestUri = new Uri("https://api.clickatell.com/rest/message"), Headers = { { HttpRequestHeader.Authorization.ToString(), "Bearer xxxxxxxxxxxxxxxxxxxx" }, { HttpRequestHeader.Accept.ToString(), "application/json" }, { "X-Version", "1" } }, Content = new StringContent(JsonConvert.SerializeObject(svm)) }; var response = client.SendAsync(httpRequestMessage).Result;
sumber
HttpRequestHeader.Access
harusHttpRequestHeader.Accept
.Ada
Headers
properti diHttpRequestMessage
kelas. Anda dapat menambahkan tajuk khusus di sana, yang akan dikirim dengan setiap permintaan HTTP. DiDefaultRequestHeaders
dalamHttpClient
kelas, di sisi lain, menetapkan header yang akan dikirim dengan setiap permintaan yang dikirim menggunakan objek klien itu, maka nama Header Permintaan Default .Semoga ini membuat segalanya lebih jelas, setidaknya bagi seseorang yang melihat jawaban ini di masa depan.
sumber
Headers
adalah propertiHttpRequestMessage
objek individu . Dengan demikian, Anda dapat membuat pesan berbeda dengan header berbeda.DefaultRequestHeaders
adalah propertiHttpClient
objek; jika beberapa pesan dikirim melalui pesan tertentuHttpClient
, semua pesan tersebut akanDefaultRequestHeaders
ditambahkan ke header individual pesan tersebut.