मेरे पास वास्तव में एक सरल सवाल है। मैं HTTP पोस्ट का उपयोग कर सर्वर पर फ़ाइलों को अपलोड कर रहा हूं। सर्वर को रिहा करने के लिए टाइमआउट होने के बाद मुझे विशेष रूप से कनेक्शन टाइमआउट को संभालने और प्रतीक्षा प्रतीक्षा एल्गोरिदम जोड़ने की आवश्यकता है।HttpWebRequest टाइमआउट हैंडलिंग
मेरे कोड बहुत सरल है:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("SomeURI");
request.Method = "POST";
request.ContentType = "application/octet-stream";
request.KeepAlive = true;
request.Accept = "*/*";
request.Timeout = 300000;
request.AllowWriteStreamBuffering = false;
try
{
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
WebHeaderCollection headers = response.Headers;
using (Stream Answer = response.GetResponseStream())
{
// Handle.
}
}
}
catch (WebException e)
{
if (Timeout_exception)
{
//Handle timeout exception
}
}
मैं फ़ाइल कोड को पढ़ने के लोप के रूप में यह हमारे लिए चिंता का विषय नहीं है। अब मुझे यह सुनिश्चित करने की ज़रूरत है कि वेबएक्सप्शन फेंकने के बाद, मैं यह देखने के लिए अपवाद फ़िल्टर करता हूं कि यह वास्तव में टाइमआउट अपवाद है या नहीं। मैंने अपवाद संदेश के खिलाफ तुलना करने का विचार किया है, लेकिन मुझे यकीन नहीं है कि यह सही तरीका है क्योंकि प्रश्न में आवेदन एक वाणिज्यिक ऐप है और मुझे डर है कि संदेश अलग-अलग भाषाओं के बीच भिन्न होता है। और मुझे किस संदेश की तलाश करनी चाहिए।
कोई सुझाव?
इसके अलावा, यह एक अच्छा अभ्यास है, अपवाद rethrow अगर यह एक तरह से एक अपवाद नहीं था टाइमआउट – rolivares
@rolivares यह निश्चित रूप से एक अच्छा विचार है। कोड संपादित किया गया। –