मैं किसी ऐप में प्रबंधित त्रुटि के जवाब में प्रदान की गई जानकारी को बेहतर बनाने की कोशिश कर रहा हूं।500 आंतरिक सर्वर त्रुटि HttpWebRequest का उपयोग करते समय, मैं वास्तविक त्रुटि कैसे प्राप्त कर सकता हूं?
इस कोड है:
Try
httpRequestObj = HttpWebRequest.Create(strRequest)
httpRequestObj.Method = "GET"
httpRequestObj.UseDefaultCredentials = True
* httpResponse = httpRequestObj.GetResponse
Using reader As StreamReader = New StreamReader(httpResponse.GetResponseStream())
strXML = reader.ReadToEnd()
End Using
Catch ex As WebException
'do something with ex
End Try
WebException * लाइन
वर्तमान में सभी मैं अपवाद में देखते हैं पर फेंक दिया जाता है कि "दूरस्थ सर्वर ने एक त्रुटि दिखाई: (500) आंतरिक सर्वर त्रुटि "। मैंने डीबग में अपवाद को देखा है लेकिन मुझे जो जानकारी चाहिए वह वहां नहीं है- मुझे लगता है कि उस जानकारी को देखने के लिए प्रतिक्रिया को पढ़ने की आवश्यकता होगी लेकिन यह अब तक कभी नहीं मिलती है।
अगर मैं अनुरोध लेने के लिए और यह मेरे ब्राउज़र में पेस्ट सीधे मैं XML स्वरूप में त्रुटि जानकारी है कि एपीआई मैं फोन कर रहा हूँ से दिया जाता है देख सकते हैं, जानकारी की तरह:
<Error>
<description>info I want to get to here</description>
<detail />
<code>info I want to get to here</code>
<source />
<category>info I want to get to here</category>
<file>info I want to get to here</file>
<line>info I want to get to here</line>
<pad />
</Error>
वहाँ कोई तरीका है मैं इस कोड को बदल सकता हूं ताकि मैं 500 त्रुटि से पहले प्राप्त कर सकूं और वास्तविक प्रतिक्रिया देख सकूं, मैं विफलता के लिए वास्तविक समस्या का पता लगाने के लिए इस XML को पार्स करने में सक्षम होना चाहता हूं।
नोट: अपवाद में एक ex.Response (System.Net.HttpWebResponse) है, लेकिन मुझे वहां मौजूद जानकारी नहीं दिखाई दे सकती है, केवल हेडर जानकारी का एक भार है।
बस इसे अभी देखें। इस कोड के साथ पहली समस्या यह है कि "ResponseError" WebExceptionStatus enum http://msdn.microsoft.com/en-us/library/system.net.webexceptionstatus.aspx – DannykPowell
का हिस्सा नहीं दिखता है, इसे सही में चिह्नित करना इसके बावजूद, क्योंकि इस जवाब ने मुझे समाधान प्राप्त करने में मदद की। StreamReader = नई StreamReader (ex.Response.GetResponseStream()) strXML = reader.ReadToEnd() अंत के रूप में पाठक का उपयोग – DannykPowell
बारे में खेद का उपयोग WebException रूप पकड़ने पूर्व, यह होना चाहिए: मेरे कोड (vb.net) की तरह दिखता है वास्तव में WebExceptionStatus.ProtocolError हो। इस मामले में, प्रतिक्रिया ऑब्जेक्ट में त्रुटि स्ट्रीम होनी चाहिए। अब, इसके बावजूद, यदि आपकी त्रुटि स्ट्रीम खाली है, तो इसका मतलब यह हो सकता है कि सर्वर ने कुछ भी नहीं भेजा है, या कहीं भी एक बग है। क्या आप http://ferozedaud.blogspot.com/2009/08/tracing-with-systemnet.html का उपयोग करके एक ट्रैसेलॉग प्राप्त कर सकते हैं? वह विल्स दिखाएगा कि सर्वर ने प्रतिक्रिया इकाई भेजी है या नहीं। – feroze