Поэтому мне нужно получить два ответа на запрос. В документации от веб-сервиса, который мне нужно вызвать, говорится, что я получу быстрый синхронный ответ, а после этого он отправит мне медленный второй асинхронный ответ.
Мне это кажется очень странным, и я не могу заставить .NET ждать/прослушивать/опрашивать второй ответ.
Я получил следующее;
public void testCall(object sender, EventArgs e)
{
byte[] xmlIn = Encoding.UTF8.GetBytes("my xml");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("my url");
request.Method = "POST";
request.ContentType = "application/xml";
using (var dataStream = request.GetRequestStream())
{
dataStream.Write(xmlIn, 0, xmlIn.Length);
}
request.BeginGetResponse(new AsyncCallback(FinishWebRequest), request);
}
private void FinishWebRequest(IAsyncResult result)
{
HttpWebResponse response = (result.AsyncState as HttpWebRequest).EndGetResponse(result) as HttpWebResponse;
using (var stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
var responseString = reader.ReadToEnd();
Debug.Write(responseString);
Response.Write(responseString);
}
}
Теперь это работает для первого ответа... но как мне получить второй ответ?