通过yauaa解析UserAgent
什么是yauaa
使用测试
-
导入依赖
<!-- 解析客户端操作系统、浏览器 --> <dependency> <groupId>nl.basjes.parse.useragent</groupId> <artifactId>yauaa</artifactId> <version>5.20</version> </dependency>
-
创建一个工具类
UserAgentUtils.java
@Component public class UserAgentUtils { private UserAgentAnalyzer uaa; public UserAgentUtils() { this.uaa = UserAgentAnalyzer .newBuilder() .hideMatcherLoadStats() .withField("OperatingSystemNameVersionMajor") .withField("AgentNameVersion") .build(); } /** * 从User-Agent解析客户端操作系统和浏览器版本 * * @param userAgent * @return */ public Map<String, String> parseOsAndBrowser(String userAgent) { UserAgent agent = uaa.parse(userAgent); String os = agent.getValue("OperatingSystemNameVersionMajor"); String browser = agent.getValue("AgentNameVersion"); Map<String, String> map = new HashMap<>(); map.put("os", os); map.put("browser", browser); return map; } }
-
在测试类中进行测试
- 随便访问一个请求 找到userAgent用于测试
-
编写代码测试
@Test //使用yauaa解析user-agent public void test1(){ String userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36"; Map<String, String> userAgentMap = userAgentUtils.parseOsAndBrowser(userAgent); System.err.println(userAgentMap); String os = userAgentMap.get("os"); String browser = userAgentMap.get("browser"); System.err.println(os); System.err.println(browser); }
在工具类中 只获取了操作系统和浏览器的名称版本(如有其他需要可自行添加)
-
结果