मैं एक आईफोन ऐप बनाने के लिए मोनो टच का उपयोग कर रहा हूं। ऐप में मैं अपने सर्वर पर चल रही वेब सेवाओं से जानकारी वापस खींचने के लिए वेब अनुरोध कर रहा हूं।मैं मोनो टच का उपयोग करते समय "प्रतिक्रिया स्ट्रीम प्राप्त करने में त्रुटि (ReadDone2): प्राप्त करें विफलता" को कैसे संभाल/ठीक कर सकता हूं?
public static HttpWebRequest CreateRequest(string serviceUrl, string methodName, JsonObject methodArgs)
{
string body = "";
body = methodArgs.ToString();
HttpWebRequest request = WebRequest.Create(serviceUrl) as HttpWebRequest;
request.ContentLength = body.Length; // Set type to POST
request.Method = "POST";
request.ContentType = "text/json";
request.Headers.Add("X-JSON-RPC", methodName);
StreamWriter strm = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII);
strm.Write(body);
strm.Close();
return request;
}
तब मैं इसे इस तरह कहते हैं:
var request = CreateRequest(URL, METHOD_NAME, args);
request.BeginGetResponse (new AsyncCallback(ProcessResponse), request);
और ProcessResponse इस तरह दिखता है:
private void ProcessResponse(IAsyncResult result)
{
try
{
HttpWebRequest request = (HttpWebRequest)result.AsyncState;
using (HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(result)) // this is where the exception gets thrown
{
using (StreamReader strm = new System.IO.StreamReader(response.GetResponseStream()))
{
JsonValue value = JsonObject.Load(strm);
// do stuff...
strm.Close();
} // using
response.Close();
} // using
Busy = false;
}
catch(Exception e)
{
Console.Error.WriteLine (e.Message);
}
}
एक और है
यह अनुरोध बनाने के लिए अपनी पद्धति है मोनोड्रॉइड के लिए इस मुद्दे के बारे में सवाल और उत्तर में आउटपुट स्ट्रीम को स्पष्ट रूप से बंद करने का सुझाव दिया गया। मैंने कोशिश की लेकिन यह समस्या का समाधान नहीं करता है। मुझे अभी भी बहुत सारी ReadDone2 त्रुटियां मिल रही हैं।
इस समय मेरे कार्यवाही में वेब अनुरोध को दोबारा सबमिट करना शामिल है यदि कोई त्रुटि होती है और दूसरा प्रयास ज्यादातर मामलों में काम करता है। ये त्रुटियां केवल तभी होती हैं जब मैं फोन पर परीक्षण कर रहा हूं और सिम्युलेटर का उपयोग करते समय कभी नहीं होता।
कौन सा सर्वर आप उपयोग कर रहे हैं? –