2

我正在尝试从 User-Agent 获取浏览器版本。

这是我的用户代理:

"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36"

经过一番搜索,我写了一个非常简单的代码:

类根:

{
    public class Device
    {
        public bool IsSpider { get; set; }
        public string Brand { get; set; }
        public string Family { get; set; }
        public string Model { get; set; }
    }

    public class OS
    {
        public string Family { get; set; }
        public string Major { get; set; }
        public object Minor { get; set; }
        public object Patch { get; set; }
        public object PatchMinor { get; set; }
    }

    public class Browser
    {
        public string Family { get; set; }
        public string Major { get; set; }
        public string Minor { get; set; }
        public string Patch { get; set; }
    }

    public class Root
    {
        public Device Device { get; set; }
        public OS OS { get; set; }
        public Browser Browser { get; set; }
    }
}

控制器:

public class Controller1 : ControllerBase
    {        
        private Root uaParser;

        public EventsController()
        {           
            uaParser = null;
        }

        [HttpPost("api/event")]
        public async Task<IActionResult> Event()
        {            
            string ua = Request.Headers["User-Agent"].ToString();
            uaParser = await GetUaDataAsync(ua);
            string build = uaParser.Browser.Patch; //going to get here build, it is example, only
            //do my staff here
        }   

        public async Task<Root> GetUaDataAsync(string ua)
    {
        //Initialization
        IUaParserManager uaManager = new UaParserManager();
        await uaManager.InitializeAsync();

        //Parse
        IUserAgentInfo uaInfo = uaManager.Parse(ua);

        return JsonConvert.DeserializeObject<Root>(JsonConvert.SerializeObject(uaInfo, Formatting.Indented));
    }
}

但由于某种原因,我无法接收 Chrome 的构建(94.0.4606. 81),只能接收 94.0.460,我尝试将构建添加到 Root 作为对象,但它只返回 null。

你有什么想法我在这里的错误是什么?

谢谢!

4

0 回答 0