我们正在将我们的解决方案之一移植到 PCL,但在 NET 框架基类库的受支持类和属性方面面临很多问题。为了使相同的功能在不同的平台上工作,我们实现了 WebClient,但我们在 WebRespornce 类中看不到状态代码属性。
在我发布代码示例之前,让我强调一下我们目前的目标平台。
框架版本为4.5 我们的目标平台是; window 电话 8 window 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));
}
请您参考如下方法:
该属性位于 HttpWebResponse class 中(派生自 WebResponse),不在基类中。
您需要将结果转换为适当的派生类以访问状态代码。
