Skip to main content
 首页 » 编程设计

c#之缺少可移植类库 WebResponse StatusCode

2024年02月20日29duanxz

我们正在将我们的解决方案之一移植到 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),不在基类中。

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