Me pregunto si hay una manera fácil de obtener la respuesta de una httpwebrequest asincrónica.Obtener la respuesta de un HttpWebRequest asíncrono
Ya he visto esta pregunta here pero todo lo que intento hacer es devolver la respuesta (que suele ser json o xml) en forma de cadena a otro método donde puedo analizarlo/tratarlo en consecuencia.
Heres algo de código:
tengo estos dos métodos estáticos aquí que creo que es seguro para subprocesos como todos los params se pasan y no hay variables locales compartidos que utilizan los métodos?
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;
}
}
El código que envió trabajado bien una vez me quita el ManualResetEvent extraña.Conjunto(); - ¿Cuál es el problema que estás teniendo? –
@JamesManning Hola, eso fue un error tipográfico, estoy buscando una forma más fácil de obtener el resultado. Lo que ha proporcionado (Tarea) está exactamente en línea. Acabo de dar el salto de solicitudes sincrónicas, parece que hay mucho más en juego. Gracias –
gdp