2013-06-06 6 views
15

यह मैं पागल गाड़ी चला रहा है, मैं ContentType हैडर की स्थापना कर रहा हूँ हर जगह मैं और यह/पाठ भेजने सादे से रोकने के लिए नहीं कर पा रहे हो सकते हैं।ContentType उपयोग करने के लिए HttpClient मजबूर: text/xml

फ़िडलर में डेटा देख, अनुरोध हमेशा अनुरोध कर रहा है:

पोस्ट http: /domain.com HTTP/1.1

सामग्री प्रकार: पाठ/सादे; charset = utf-8

using (var httpClient = new HttpClient()) 
{ 
    var request = new HttpRequestMessage(HttpMethod.Post, "http://domain.com"); 
     request.Content = new StringContent(Serialize(obj), Encoding.UTF8, "text/xml"); 
     request.Content.Headers.Clear(); 
     request.Content.Headers.ContentType = new MediaTypeHeaderValue("text/xml"); 
     request.Headers.Clear(); 
     request.Headers.Add("Content-Type","text/xml"); 
     var response = await httpClient.SendAsync(request); 
     return await response.Content.ReadAsStringAsync(); 
} 

उत्तर

5

कोशिश सेटिंग्स डिफ़ॉल्ट अनुरोध हेडर:

client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml")); 
+3

के बजाय नहीं, कि कोशिश की। लेकिन हेडर स्वीकार करें मदद नहीं करेगा। मैं सामग्री-प्रकार शीर्षलेख सेट करने की कोशिश कर रहा हूं –

+0

मेरे लिए पूरी तरह से काम किया। –

21

ऐसा लगता है कि मुश्किल की कोशिश की :) यह सिर्फ काम करना चाहिए।

using (var httpClient = new HttpClient()) 
{ 
    var request = new HttpRequestMessage(HttpMethod.Post, "http://domain.com"); 
    request.Content = new StringContent(Serialize(obj), Encoding.UTF8, "text/xml"); 
    var response = await httpClient.SendAsync(request); 
    return await response.Content.ReadAsStringAsync(); 
} 
+1

यह चाहिए, लेकिन यह नहीं है। मैंने इस तरह के सरल प्रयासों के साथ शुरू किया। क्या आपने फिडलर में आउटपुट की जांच की? –

+0

हाँ, मैंने किया। आप किस प्लेटफॉर्म का उपयोग करते हैं? मैं .NET फ्रेमवर्क (डेस्कटॉप पर) – outcoldman

+0

साथ ConsoleApplication की कोशिश की यह HttpClient के साथ "का उपयोग कर" बयान से सावधान रहें –

संबंधित मुद्दे