मैं API कॉल निम्नलिखित के साथ MtGox से व्यापार के इतिहास को पुनः प्राप्त करने के लिए एक सरल सी # समारोह लिखा है:HttpWebRequest.GetResponse() का समय समाप्त हो रही रखता है
https://data.mtgox.com/api/1/BTCUSD/trades?since=<trade_id>
यहाँ प्रलेखित: https://en.bitcoin.it/wiki/MtGox/API/HTTP/v1#Multi_currency_trades
यहाँसमारोह है:
string GetTradesOnline(Int64 tid)
{
Thread.Sleep(30000);
// communicate
string url = "https://data.mtgox.com/api/1/BTCUSD/trades?since=" + tid.ToString();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string json = reader.ReadToEnd();
reader.Close();
reader.Dispose();
response.Close();
return json;
}
मैं डेटा प्राप्त करने के लिए tid = 0 (व्यापार आईडी) से शुरू कर रहा हूं (शुरुआत से)। प्रत्येक अनुरोध के लिए, मुझे 1000 व्यापार विवरण वाले एक प्रतिक्रिया प्राप्त होती है। मैं हमेशा अगले अनुरोध के लिए पिछली प्रतिक्रिया से व्यापार आईडी भेजता हूं। यह ठीक 4 अनुरोध & प्रतिक्रियाओं के लिए ठीक काम करता है। लेकिन उसके बाद, निम्न पंक्ति एक "System.Net.WebException" फेंकता है, कह रही है कि "प्रचालन का समय समाप्त हो गया है":
- अपवाद को पकड़ने और retying:
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
यहाँ तथ्य हैं एक ही अपवाद के कारण रहता है
- डिफ़ॉल्ट HttpWebRequest .Timeout और .ReadWriteTimeout पहले से ही काफी अधिक (एक मिनट से अधिक)
- गलत पर HttpWebRequest.KeepAlive बदलते कुछ भी या तो का समाधान नहीं कर रहे हैं 0
- यह यहाँ तक कि जब समारोह
- विफल हो रहा है हमेशा ब्राउज़र में काम करने लगता है यह दिन प्रतिदिन बदलता रहता है अपवाद से पहले https://www.google.com
- सफल प्रतिक्रियाओं की राशि से प्रतिक्रिया retrieveing कोई समस्या नहीं है (लेकिन ब्राउज़र हमेशा काम करता है)
- व्यापार आईडी कि पिछली बार विफल रहा है पर शुरू अपवाद तुरंत
- मुख्य थ्रेड से इस कार्यप्रणाली को कॉल के बजाय अभी भी अपवाद
- किसी दूसरी मशीन पर इसे चलाने की वजह से काम नहीं किया
- आरयू का कारण बनता है एक अलग आईपी से nning
- काम नहीं किया Thread.Sleep बढ़ती inbetween अनुरोध
क्या गलत हो सकता है की किसी भी विचार मदद नहीं करता है?
मैंने अभी सुझाव दिया कि आपने जो सुझाव दिया है। इस बार 5 जवाब लोड हुए, इसलिए यह एक सुधार की तरह लगता है। लेकिन फिर मैं एक "रिमोट सर्वर को एक त्रुटि लौटा रहा है: (504) गेटवे टाइमआउट" संदेश (जो "ऑपरेशन का समय समाप्त हो गया है" से अलग है) – symbiont
मुझे लगता है कि सर्वर सर्वर पर यह समस्या है? – symbiont
कभी नहीं। यह अभी भी मेरे ब्राउज़र (फ़ायरफ़ॉक्स) में काम कर रहा है। – symbiont