UWP中的HttpWebRequest(C#)

我正在编写代码来将HttpWebRequest发布到网站上

如果网站正在运行,它将返回HttpStatusCode.OK

如果不是,它将返回HttpStatusCode.NotFound

我的代码

  var url = "http://simplegames.com.ua/"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode == HttpStatusCode.OK) { Debug.WriteLine("All ok"); } else if (response.StatusCode == HttpStatusCode.NotFound) { Debug.WriteLine("URL not working"); } response.Close(); 

但我有错误

1)严重性代码描述项目文件行抑制状态错误CS1061’HttpWebRequest’不包含’GetResponse’的定义,并且没有可以找到接受类型’HttpWebRequest’的第一个参数的扩展方法’GetResponse’(你是否缺少using指令)或汇编参考?)Milano C:\ Users \ nemes \ Documents \ GitHub \ Milano_pizza \ Milano \ MainPage.xaml.cs 50 Active

2)严重性代码描述项目文件行抑制状态错误CS1929’HttpWebResponse’不包含’Close’的定义,最好的扩展方法重载’ExtensionMethods.Close(Stream)’需要一个类型为’Stream’的接收器Milano C:\用户\ nemes \ Documents \ GitHub \ Milano_pizza \ Milano \ MainPage.xaml.cs 59有效

虽然我们可以在UWP应用程序中使用HttpWebRequest类 ,但不是所有方法。 HttpWebRequest.GetResponse方法和HttpWebResponse.Close方法是无法在UWP应用程序中使用的方法。 通常,我们可以通过检查文档底部的版本信息来查找是否可以在UWP应用程序中使用某个方法。 如果我们可以在版本信息下找到通用Windows平台 ,那么我们应该能够在UWP应用程序中使用此方法。

在.NET Core / UWP中, System.Net.HttpWebRequest类位于System.Net.Requests库中,不建议使用。 参考。 适用于UWP应用程序的.NET网络API :

System.Net.Requests

此库包含与System.Net.HttpWebRequestSystem.Net.HttpWebResponse类相关的类型,这些类允许开发人员实现HTTP协议的客户端角色。 .NET Core 5的API表面与Windows 8.1应用程序的API表面相同,并且与.NET Framework中的表面相比非常有限 。 这是故意的 ,我们非常鼓励转而使用HttpClient API – 这是我们的能源和创新将在未来的重点。

提供此库纯粹是为了向后兼容,并取消阻止使用这些旧API的.NET库的使用。 对于.NET Core,HttpWebRequest的实现实际上是基于HttpClient(从.NET Framework中反转依赖顺序)。 如上所述,其原因是为了避免在UWP应用程序上下文中使用托管的.NET HTTP堆栈,并将其作为.NET开发人员的单个HTTP客户端角色API转向HttpClient。

在UWP中,我们有两个HttpClient API ,它们是System.Net.Http.HttpClientWindows.Web.Http.HttpClient 。 您可以根据自己的要求选择其中任何一种。 有关这两个HttpClient API的更多信息,请参阅通用Windows平台中的Demystifying HttpClient API 。