Мне интересно, есть ли простой способ получить ответ асинхронного httpwebrequest.Получение ответа от асинхронного HttpWebRequest
Я уже видел этот вопрос here, но все, что я пытаюсь сделать, это вернуть ответ (обычно json или xml) в форме строки другому методу, где я могу затем проанализировать его/обработать его соответствующим образом.
Heres некоторые код:
Я эти два статических метода здесь, которые я думаю, потокобезопасны, как все PARAMS передаются в и нет никаких общих локальных переменных, что методы используют?
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.Задавать(); - В чем проблема, с которой вы сталкиваетесь? –
@JamesManning Привет, это была опечатка, я получаю более простой способ получить результат. То, что вы предоставили (задание), точно соответствует строкам. Я только что сделал прыжок от синхронных запросов, похоже, что они намного больше продолжаются. Спасибо –
gdp