前文讲到WP8中使用Async执行HTTP请求,用了微软提供的扩展。下面提供了一种方法,自己实现HttpWebRequest的扩展。
随后就可以使用 await HttpWebRequest.GetResponseAsync() 轻松使用http请求了。
public static class WebRequestExtensions { public async static Task<WebResponse> GetResponseAsync(this HttpWebRequest request) { return await Task<WebResponse>.Factory.FromAsync(request.BeginGetResponse, request.EndGetResponse, request); } public async static Task<Stream> GetRequestStreamAsync(this HttpWebRequest request) { return await Task<Stream>.Factory.FromAsync(request.BeginGetRequestStream, request.EndGetRequestStream, request); } }