我正在尝试从 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。
你有什么想法我在这里的错误是什么?
谢谢!