来自c#的异步web Post API调用

时间:2015-09-17 12:25:39

标签: c# asynchronous asp.net-web-api

我正在编写代码:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(qry);

request.ContentType = "application/x-www-form-urlencoded";

request.Method = "POST";
request.KeepAlive = false;
request.ContentLength = 0;

byte[] data = Encoding.UTF8.GetBytes(crsAdapterXML.ToString());
request.ContentLength = data.Length;
Stream stream = request.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Close();
Stream objStream = request.GetResponse().GetResponseStream();

StreamReader objReader = new StreamReader(objStream);
result = Convert.ToString(objReader.ReadLine());

我需要让这个调用异步。任何人都可以帮助我。

1 个答案:

答案 0 :(得分:0)

现在使用HttpWebRequest是一种老式的做HTTP请求的方法。 有些库提供了更好的API来实现这一目标。

我建议您尝试使用Microsoft的HttpClient(System.Net.Http)或RestSharp

可能还有更多,但那些是我认识的并且没有问题。

两者都提供异步API,因此您可以异步等待响应。

我对HttpWebRequest没有太多经验,但它似乎也暴露了其方法的异步变体,如GetResponseAsyncGetRequestStreamAsync