我们将我们的一个解决方案移植到PCL,但面临着很多关于.NET框架基类库的受支持类和属性的问题。为了在我们实现WebClient的不同平台上使用相同的功能,我们在WebRespornce类中看不到状态代码属性。
在我发布代码示例之前,让我强调我们目前正在瞄准的平台。
框架版本是4.5 我们定位的平台是; Windows Phone 8 Windows 8(RT) 带有WPF应用程序的Windows 7/8。
这是我们正在使用的代码,但是云无法在WebResponce
中找到StatusCode属性 private static byte[] ReadStreamFromResponce(WebResponse result)
{
using (var responseStream = result.GetResponseStream())
using (var ms = new MemoryStream())
{
if (responseStream != null) responseStream.CopyTo(ms);
return ms.ToArray();
}
}
private static Task<byte[]> MakeAsyncRequest(string requestString)
{
var request = (HttpWebRequest)WebRequest.Create(requestString);
Task<WebResponse> requestTask = Task.Factory.FromAsync(
request.BeginGetResponse,
asyncResult => request.EndGetResponse(asyncResult),
null);
return requestTask.ContinueWith(t => ReadStreamFromResponce(t.Result));
}