非同期の httpwebrequest の応答を取得する簡単な方法があるかどうか疑問に思っています。
私はすでにこの質問をここで見ましたが、私がやろうとしているのは、応答 (通常は json または xml) を文字列の形式で別のメソッドに返し、そこでそれを解析/処理することです。
いくつかのコードを次に示します。
すべてのパラメーターが渡され、メソッドが使用する共有ローカル変数がないため、これら 2 つの静的メソッドはスレッドセーフだと思いますか?
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;
}
}