.NET Core 可以通过以下方法判断发起请求的设备:
HttpRequest.UserAgent 属性可以获取发起请求的用户代理字符串。用户代理字符串包含有关发起请求的设备的信息,例如设备类型、操作系统版本、浏览器版本等。
例如,以下代码可以判断发起请求的设备是否为手机:
- using System;
- using System.Net;
-
- namespace DeviceDetector
- {
- class Program
- {
- static void Main(string[] args)
- {
- // 获取请求
- HttpRequest request = HttpContext.Current.Request;
-
- // 判断请求是否来自手机
- string userAgent = request.UserAgent;
- if (userAgent.Contains("Mobile"))
- {
- Console.WriteLine("请求来自手机");
- }
- else
- {
- Console.WriteLine("请求来自其他设备");
- }
- }
- }
- }
-
这段代码将检查请求的用户代理字符串是否包含 "Mobile" 字符串。如果包含,则表示请求来自手机。否则,表示请求来自其他设备。
HttpRequest.Headers["User-Agent"] 属性可以获取发起请求的用户代理字符串。该属性与 HttpRequest.UserAgent 属性相同。
DeviceDetector 库是一个第三方库,用于检测发起请求的设备。该库提供了一系列方法,用于判断发起请求的设备类型、操作系统版本、浏览器版本等。
例如,以下代码可以使用 DeviceDetector 库判断发起请求的设备是否为手机:
- using System;
- using System.Net;
- using DeviceDetector;
-
- namespace DeviceDetectorExample
- {
- class Program
- {
- static void Main(string[] args)
- {
- // 获取请求
- HttpRequest request = HttpContext.Current.Request;
-
- // 判断请求是否来自手机
- Device device = DeviceDetector.FromUserAgent(request.UserAgent);
- if (device.IsMobileDevice)
- {
- Console.WriteLine("请求来自手机");
- }
- else
- {
- Console.WriteLine("请求来自其他设备");
- }
- }
- }
- }
-
这段代码将使用 DeviceDetector.FromUserAgent() 方法来获取发起请求的设备信息。如果设备信息包含 "MobileDevice" 字符串,则表示请求来自手机。否则,表示请求来自其他设备。
具体使用哪种方法取决于您的具体需求。如果只需要判断发起请求的设备类型,则可以使用 HttpRequest.UserAgent 属性或 HttpRequest.Headers["User-Agent"] 属性。如果需要获取有关发起请求的设备的更多信息,则可以使用 DeviceDetector 库。