【问题标题】:How to get the exact client browser name and version in Spring MVC?如何在 Spring MVC 中获取确切的客户端浏览器名称和版本?
【发布时间】:2015-04-04 01:46:44
【问题描述】:

我正在开发一个 Spring MVC 应用程序,我需要访问客户端浏览器名称和版本。

我的操作中有一个HttpServletRequest 的实例作为参数并使用request.getHeader("User-Agent") 方法,但这在Internet Explorer 9 中返回了Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko

我需要准确的编号和版本。有什么工具可以做到这一点吗?

【问题讨论】:

  • 没有安全的方法可以做到这一点。浏览器名称和版本来自浏览器(客户端)。它很容易被欺骗,所以你不能 100% 确定浏览器的名称和版本是正确的

标签: java spring spring-mvc browser


【解决方案1】:

确认用户代理不安全。尽管如此,在缺乏其他方法的情况下,您应该解析一个用户代理标头,这实际上并不容易,因为组合的数量是压倒性的。除非你想自己动手,否则我建议

http://www.bitwalker.eu/software/user-agent-utils

来源可在

https://github.com/HaraldWalker/user-agent-utils

用法很简单

UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent"));
System.out.println(userAgent.getBrowser().getName() + " " + userAgent.getBrowserVersion());

【讨论】:

【解决方案2】:

用于解析User-Agent Http Header 的结果的有用库:browscap-java

【讨论】:

    猜你喜欢
    • 2012-09-11
    • 2018-11-24
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 2014-04-11
    • 2014-07-16
    • 2018-10-18
    • 2018-04-11
    相关资源
    最近更新 更多