2016-03-10 27 views
40

मैं एक HttpClient अनुरोध में एक कस्टम शीर्षलेख कैसे जोड़ूं। मैं जेसन पोस्ट करने के लिए PostAsJsonAsync विधि का उपयोग कर रहा हूं। कि मैं जोड़ा जा करने की आवश्यकता होगी कस्टम हेडरकस्टम हेडर Httpclient अनुरोध

"X-Version: 1" 

है यह मैं अब तक क्या किया है है:

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; 
} 
+1

की संभावित डुप्लिकेट अनुरोध के कस्टम हेडर जोड़ना चाहिए (http://stackoverflow.com/questions/12022965/adding-http-headers -to-httpclient) – Liam

+0

@Liam: मेरा सवाल कस्टम हेडर जोड़ने का तरीका था। जहां दूसरा सवाल हेडर –

उत्तर

71

मैं अपने सवाल का जवाब मिल गया है।

client.DefaultRequestHeaders.Add("X-Version","1"); 

कि [HttpClient को जोड़ना HTTP हेडर]

+1

जोड़ने का तरीका था, तो बहुत से लोगों को यह नहीं पता कि यह कैसे करना है, क्या इसका मतलब यह है कि एचटीपी क्लाइंट के पास बहुत खराब एपीआई है? मुझे लगता है [Flurl] (http://tmenier.github.io/Flurl/) बहुत आसान है। – Neshta

+2

नहीं, ऐसा नहीं है। यह उत्तर सावधानी से देखा जाना चाहिए, क्योंकि डिफ़ॉल्ट अनुरोध हेडर प्रत्येक अनुरोध के साथ भेजे जाते हैं। आपको अपना अनुरोध बनाना चाहिए जैसे @ एन्यूबिस ने सुझाव दिया। जब आप HttpClient बनाते हैं तो DefaultsRequestHeaders को पॉप्युलेट किया जाना चाहिए। – Ruhrpottpatriot

+0

मेरे लिए यह काम नहीं कर रहा है –

11
var request = new HttpRequestMessage { 
    RequestUri = new Uri(EnvironmentSetup.BaseAddress + "Folder"), 
    Method = HttpMethod.Post, 
    Headers = { 
     { HttpRequestHeader.Authorization.ToString(), "Basic " + EnvironmentSetup.GetAuthToken() }, 
     { HttpRequestHeader.ContentType.ToString(), "multipart/mixed" }, 
    }, 
    Content = new MultipartContent { 
     new ObjectContent<FolderWithDocuments>(new FolderWithDocuments { 
      Status = FolderStatus.Draft, 
      Users = new List<User> { EnvironmentSetup.User1, EnvironmentSetup.User2 }, 
     }, new JsonMediaTypeFormatter(), "application/json"), 
     new ByteArrayContent(ResourceHelper.ReadResourceToByteArray("blank.pdf")) { 
      Headers = { 
       { "Content-Type", "application/Executable" }, 
       { "Content-Disposition", "form-data; filename=\"test.pdf\"" }, 
      }, 
     }, 
    }, 
}; 
संबंधित मुद्दे