1

我们正在将我们的解决方案之一移植到 PCL,但在 NET 框架基类库的支持类和属性方面面临许多问题。为了使相同的功能在不同的平台上工作,我们实现了 WebClient,但我们在 WebRespornce 类中看不到状态代码属性。

在发布代码示例之前,让我强调一下我们目前的目标平台。

框架版本是 4.5,我们的目标平台是;Windows Phone 8 Windows 8 (RT) Windows 7/8 和 WPF 应用程序。

这是我们正在使用的代码,但云在 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));
    }
4

1 回答 1

4

该属性在HttpWebResponse中(派生自WebResponse),而不是在基类中。

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

于 2013-01-09T20:57:22.727 回答