का प्रतिक्रिया प्राप्त करना मुझे आश्चर्य है कि क्या एक async httpwebrequest की प्रतिक्रिया प्राप्त करने का एक आसान तरीका है।एक असिंक्रोनस HttpWebRequest
मैंने पहले से ही यह प्रश्न here देखा है, लेकिन मैं ऐसा करने की कोशिश कर रहा हूं, एक स्ट्रिंग के रूप में प्रतिक्रिया (जो आम तौर पर जेसन या एक्सएमएल है) को वापस कर देता है, जहां मैं इसे फिर से पार्स कर सकता हूं।
Heres कुछ कोड:
मैं इन दोनों स्थिर यहाँ तरीकों जो मुझे लगता है कि धागा सुरक्षित हैं के रूप में सभी पैरामीटर में पारित कर रहे हैं और वहाँ कोई साझा स्थानीय चर कि तरीकों का उपयोग कर रहे हैं है?
public static void MakeAsyncRequest(string url, string contentType)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.ContentType = contentType;
request.Method = WebRequestMethods.Http.Get;
request.Timeout = 20000;
request.Proxy = null;
request.BeginGetResponse(new AsyncCallback(ReadCallback), request);
}
private static void ReadCallback(IAsyncResult asyncResult)
{
HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState;
try
{
using (HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asyncResult))
{
Stream responseStream = response.GetResponseStream();
using (StreamReader sr = new StreamReader(responseStream))
{
//Need to return this response
string strContent = sr.ReadToEnd();
}
}
manualResetEvent.Set();
}
catch (Exception ex)
{
throw ex;
}
}
कोड आप ठीक काम तैनात एक बार मैं बाहरी ManualResetEvent हटा दिया।सेट(); - आपको क्या समस्या है? –
@ जेम्समैनिंग हाय ये एक टाइपो था, मैं परिणाम प्राप्त करने के लिए एक आसान तरीका के बाद हूं। आपने जो प्रदान किया है (कार्य) बिल्कुल लाइनों के साथ है। मैंने सिंक्रोनस अनुरोधों से केवल छलांग लगाई है, ऐसा लगता है जैसे बहुत कुछ चल रहा है। धन्यवाद –
gdp