便携式类库WebResponse StatusCode缺失

时间:2013-01-09 20:49:10

标签: c# .net-4.5 portable-class-library

我们将我们的一个解决方案移植到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));
    }

1 个答案:

答案 0 :(得分:4)

该属性位于HttpWebResponse class(派生自WebResponse),而不是基类。

您需要将结果强制转换为适当的派生类以访问状态代码。