मुझे MonoDroid में Webrequests का उपयोग करके और यादृच्छिक रूप से टाइमआउट प्राप्त करने में बहुत परेशानी हो रही है। मेरा कोड ठीक काम करता है फिर कभी-कभी सभी अनुरोध केवल टाइमआउट और काम नहीं करते हैं।मोनोड्रॉइड एचटीपी वेबवेक्वेस्ट और वेब क्लाइंट अविश्वसनीय?
मैंने सत्यापित किया है कि मेरे अनुरोधों में उपयोग की जाने वाली वेबसाइसेस समस्या नहीं है। आप देख सकते हैं यह बुनियादी सामान है
bool bolOk = false;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create ("http://www.website.com/service/");
request.Timeout = 20000;
request.Credentials = gv_objCredentials;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) {
bolOk = response.StatusCode == HttpStatusCode.OK;
}
:
यहाँ कुछ कोड है कि मैं एक वेब सेवा MonoDroid का उपयोग करने से कुछ डेटा का अनुरोध करने का उपयोग कर सकते का एक उदाहरण है। मैं ThreadPool.QueueUserWorkItem या TaskFactory का उपयोग कर उपरोक्त की तरह यूआई को उपरोक्त कोड का उपयोग करता हूं।
मैंने जो देखा है वह है कि अगर अनुरोध मेरे ऐप से बाहर निकलना शुरू हो जाता है और मैं इसे अपने कंप्यूटर में प्लग करता हूं तो ऐप को बिना किसी समय के अनुरोधों को मोनो डेवेल से डीबग करता हूं। मुझे यकीन नहीं है कि इसका मतलब कुछ भी है। यह फोन के समान नेटवर्क पर ब्राउज़र का उपयोग करके मेरे कंप्यूटर से वेब सर्विसेज का परीक्षण करने के समान है। Webservices हमेशा किसी भी मुद्दे के बिना काम करते हैं।
MonoDroid से Webrequests बनाने का सबसे अच्छा तरीका क्या है?
मैं कैसे सुनिश्चित कर सकता हूं कि मेरे अनुरोध हमेशा सफल होते हैं और यदि webservice सही तरीके से परिचालन कर रहा है तो समय-समय पर नहीं होगा?
क्या आप किसी भी मौके पर कई अनुरोधों को फायर कर रहे हैं? मुझे अतीत में कई प्लेटफार्मों के साथ कई मुद्दों के साथ कृपया ध्यान नहीं दिया गया है, हालांकि मुझे एक ही फैशन में मोनोड्रॉइड को हथियाने का आनंद नहीं मिला है। –
हाय क्रिस, हाँ यह मामला हो सकता है। मैं इस कोड का इस्तेमाल अलग थ्रेड पर कर रहा हूं। क्या आपको लगता है कि जहां भी मैं वेबरेक्वेस्ट में सिंक लॉक का उपयोग कर रहा हूं? – startupsmith
यदि ऐसा है, तो इसे एक शॉट दें ताकि आप केवल एक बार में 1 अनुरोध कर सकें। मुझे एक मुद्दा भी मिला है जहां यह प्रति मुख्य UI फ्रेम प्रति अनुरोध (और अधिकतम संचयी बाइट आकार) था जिसने एक समस्या उत्पन्न की (मुझे लगता है कि ब्राउज़र के कारण)। तो शायद आप अनुरोध को कतार में रखने और धीरे-धीरे उन्हें कॉल करने का प्रयास कर सकते हैं और देख सकते हैं कि यह काम करता है या नहीं। –