Another (400) bad request with C# REST Client: How to POST pure XML? -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 2 जवाब

मुझे एक कठिन मेरे सी # थ्रीस्ट क्लाइंट के साथ काम करने वाला एक सरल रेफरल वेब सर्विस एप्लिकेशन प्राप्त करने का समय मैं POST विधि का उपयोग करके शुद्ध XML भेजने की कोशिश कर रहा हूं।

मैंने एक डब्ल्यूसीएफ रेस्ट सर्विस बनाया है जो ऊपर और चल रहा है (मैं अपने ब्राउज़र में सर्विस टेस्ट पेज देख सकता हूं)। इसके अलावा मैं फिल्डर के माध्यम से मेरी डब्लूसीएफ़ रेस सर्विस को कॉल कर सकता हूं और यह सही तरीके से प्रतिक्रिया करता है (मुझे एक रिटर्न वैल्यू मिलेगा)।

लेकिन बड़ी समस्या यह है कि बाकी क्लाइंट मैंने हर तरह के सभी गाइडों का इस्तेमाल किया है। इसके अलावा, एक ही ग्राहक कोड जावा-आधारित REST सेवा के साथ काम करता है। लेकिन मुझे मिलता है .net में त्रुटि "दूरस्थ सर्वर ने एक त्रुटि लौटा दी है: (400) खराब अनुरोध।" अनुरोध के बाद यह अपवाद होता है। GetResponse ()

जैसा कि मैंने WCF सेवाओं को विकसित किया है, मैंने दोनों क्लाइंट (app.config) और सर्वर (web.config) के लिए कॉन्फ़िगरेशन सेटिंग निर्दिष्ट करने के लिए उपयोग किया है लेकिन यह स्थिति कैसी है .NET- आधारित शोकहारा वेब सेवाओं के साथ? मेरा मतलब है, क्या मुझे दोनों, ग्राहक (app.config) और सर्वर (web.config) के लिए समान बाध्यकारी सेटिंग्स (वेब ​​एचटीपीबीडिंग) निर्दिष्ट करने की आवश्यकता है?

यहां क्लाइंट-साइड कोड है:

  XmlDocument TestDocument = नया XmlDocument (); TestDocument.Load (XMLFilePath); बाइट [] RequestBytes = एन्कोडिंग। GetEncoding ("iso-8859-1")। GetBytes (TestDocument.OuterXml); उरी uri = नया उरी ("http: // स्थानीयहोस्ट: 2319 / मायरेस्टएसवायर एसवीसी / प्राप्त"); HttpWebRequest अनुरोध = (HttpWebRequest) HttpWebRequest.Create (यूरी); Request.ContentLength = RequestBytes.Length; अनुरोध। विधि = "पोस्ट"; Request.ContentType = "text / xml"; स्ट्रीम अनुरोधस्ट्रीम = अनुरोध। GETRequestStream (); RequestStream.Write (RequestBytes, 0, RequestBytes.Length); RequestStream.Close (); HttpWebResponse प्रतिक्रिया = (HttpWebResponse) अनुरोध। GetResponse (); स्ट्रीमरिडर रीडर = नया स्ट्रीमरिडर (प्रतिक्रिया। गेटरस्पॉन्सस्ट्रीम ()); स्ट्रिंग रिस्पांसमेसज = रीडर। रीडटेओंड (); response.Close ();  

मेरी WCF REST सेवा के लिए web.config इस तरह दिखती है (क्या मुझे सी # बाकी क्लाइंट में app.config में समान सेटिंग्स निर्दिष्ट करनी चाहिए?):

 <कोड> & lt; system.serviceModel & gt; & LT; सेवाएं & gt; & Lt; सेवा नाम = "MyRESTService.MyRESTService" & gt; & Lt; समापन बिंदु बाध्यकारी = "वेबएचटीपीबाइंडिंग" अनुबंध = "मायरेस्टसर्विज। आईएमआईआरईएसएसएआरएस" व्यवहारसंवेदन = "वेबएचटीपी" / & gt; & Lt; / सेवा & gt; & Lt; / सेवाओं & gt; & LT; व्यवहार & gt; & LT; endpointBehaviors & gt; & Lt; व्यवहार नाम = "वेब एचटीपी" & gt; & LT; webHttp / & gt; & Lt; / व्यवहार & gt; & Lt; / endpointBehaviors & gt; & Lt; / व्यवहार & gt;  

(विधि = "पोस्ट", उरीटम्प्लेट = "/ प्राप्त", अनुरोधफ़ॉर्मैट = वेबमेलफ़ॉर्मेट.एक्सएमएल, रिस्पांसफ़ॉर्मेट = वेबमेलफ़ॉर्मेट.एक्सएमएल, बॉडीस्टाइल = वेबमेलबॉडीस्टाइल.बारे)] स्ट्रिंग रिसीव (स्ट्रिंग एक्सएमएल);

जैसा कि मैं समझता हूं कि यह क्लाइंट-साइड समस्या है और क्लाइंट-साइड पर मौजूद समस्याओं के कारण अपवाद उठाया गया है। लेकिन मेरे सी # रेस्ट क्लाइंट में इस अपवाद का क्या कारण है?

एक्सएमएल इस तरह दिखता है:

  & lt;? Xml संस्करण = "1.0" एन्कोडिंग = "आईएसओ -8859-1"? & Gt; & LT; MATMAS02 & gt; & Lt; IDOC BEGIN = "1" & gt; & Lt; EDI_DC40 SEGMENT = "1" & gt; ......  

यह समस्या निम्न पोस्ट में हल हो गई है: < / P>


Comments

Popular posts from this blog

wpf - Line breaks and indenting for the XAML of a saved FlowDocument? -

gtk - Python Window Resize -

c# - read full xml file data over tcp -