欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用yauaa解析userAgent

程序员文章站 2022-03-02 23:03:20
...

通过yauaa解析UserAgent

什么是yauaa

使用yauaa解析userAgent

使用测试

  • 导入依赖

    <!-- 解析客户端操作系统、浏览器 -->
    <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用于测试

    使用yauaa解析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);
      }
      

      在工具类中 只获取了操作系统和浏览器的名称版本(如有其他需要可自行添加)

  • 结果

    使用yauaa解析userAgent