2009-10-20 19 views
9

किसी तृतीय पक्ष सेवा को समझने के लिए मुझे एक Https पोस्ट करने की आवश्यकता है। आवश्यकताएँ सेट में से एक कस्टम सामग्री प्रकार भेजना है।वेब क्लाइंट सामग्री-प्रकार शीर्षलेख कैसे सेट करें?

मैं वेब क्लाइंट का उपयोग कर रहा हूं, लेकिन मुझे यह नहीं पता कि इसे कैसे सेट किया जाए। मैंने एक नई कक्षा बनाने और CreateRequest विधि को ओवरराइड करने का प्रयास किया है, लेकिन यह अनुरोध क्रैश करता है।

क्या CopyHeadersTo विधि को फिर से लिखने के बिना ऐसा करने का कोई तरीका है?

अग्रिम

संपादित करें धन्यवाद CopyHeaderTo एक विधि नेट परावर्तक का उपयोग कर मैंने देखा है है। यह GetWebRequest से आविष्कार किया गया है और निजी गुणों से सामग्री-प्रकार सहित सभी अनुरोध शीर्षलेख सेट करता है।

उत्तर

1

ठीक है, मैंने अभी अनुरोध किया है। CONTentType propertie। यदि GetWebRequest विधि का उपयोग किया गया है, तो सामग्री प्रकार टाइप करना जो भी वांछित मूल्य है।

फिर भी, तीसरे पक्ष के साथ कनेक्शन काम नहीं कर रहा है। आंकड़े जाओ

धन्यवाद!

31

आप Headers संग्रह में जोड़ने का प्रयास कर सकते हैं।

myWebClient.Headers.Add("Content-Type","application/xxx"); 
+3

जो वेब अपवाद को फेंकता है, कहता है कि मौजूदा याचिका के लिए सामग्री-प्रकार को बदला नहीं जा सकता है। –

+0

इस अपवाद को कौन फेंकता है? क्या यह सर्वर स्क्रिप्ट है जिसे आप पोस्ट कर रहे हैं? मैंने एमएसडीएन में दिए गए उदाहरण का परीक्षण किया है और यह सफलतापूर्वक सामग्री-प्रकार शीर्षलेख को कस्टम मान पर सेट करता है। –

+0

मुझे यह करना था: _client.Headers ["सामग्री-प्रकार"] = "एप्लिकेशन/जेसन" अभी भी सही तरीके से काम नहीं कर रहा है, लेकिन कम से कम यह संकलित करता है! चांदी की रोशनी में काम करना 5. – RaoulRubin

5

webclient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded"

1

मैं यह भी मुठभेड़। और पाया कि आपको क्लाइंट एचटीपी का उपयोग करना चाहिए, अन्यथा ब्राउज़र एचटीपी सुरक्षा कारण के लिए सामग्री-प्रकार के परिवर्तन को अवरुद्ध कर देगा। This MSDN link समझाओ।

WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp); 
WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp); 
client.Headers["Content-Type"] = "application/json"; 
संबंधित मुद्दे