瀏覽解析工具cz解析資料的瀏覽器 瀏覽器版本號 作業系統 作業系統版本
阿新 • • 發佈:2018-12-02
解析工具類,呼叫第三方cz包
package com.sxt.etl.util; import java.io.IOException; import cz.mallat.uasparser.OnlineUpdater; import cz.mallat.uasparser.UASparser; /** * 解析瀏覽器的user agent的工具類,內部就是呼叫這個uasparser jar檔案 * * @author root * */ public class UserAgentUtil { static UASparser uasParser = null; // static 程式碼塊, 初始化uasParser物件 static { try { uasParser = new UASparser(OnlineUpdater.getVendoredInputStream()); } catch (IOException e) { e.printStackTrace(); } } /** * 解析瀏覽器的user agent字串,返回UserAgentInfo物件。<br/> * 如果user agent為空,返回null。如果解析失敗,也直接返回null。 * * @param userAgent * 要解析的user agent字串 * @return 返回具體的值 */ public static UserAgentInfo analyticUserAgent(String userAgent) { UserAgentInfo result = null; if (!(userAgent == null || userAgent.trim().isEmpty())) { // 此時userAgent不為null,而且不是由全部空格組成的 try { cz.mallat.uasparser.UserAgentInfo info = null; info = uasParser.parse(userAgent); result = new UserAgentInfo(); result.setBrowserName(info.getUaFamily()); result.setBrowserVersion(info.getBrowserVersionInfo()); result.setOsName(info.getOsFamily()); result.setOsVersion(info.getOsName()); } catch (IOException e) { // 出現異常,將返回值設定為null result = null; } } return result; } /** * 內部解析後的瀏覽器資訊model物件 * * @author root * */ public static class UserAgentInfo { private String browserName; // 瀏覽器名稱 private String browserVersion; // 瀏覽器版本號 private String osName; // 作業系統名稱 private String osVersion; // 作業系統版本號 public String getBrowserName() { return browserName; } public void setBrowserName(String browserName) { this.browserName = browserName; } public String getBrowserVersion() { return browserVersion; } public void setBrowserVersion(String browserVersion) { this.browserVersion = browserVersion; } public String getOsName() { return osName; } public void setOsName(String osName) { this.osName = osName; } public String getOsVersion() { return osVersion; } public void setOsVersion(String osVersion) { this.osVersion = osVersion; } @Override public String toString() { return "UserAgentInfo [browserName=" + browserName + ", browserVersion=" + browserVersion + ", osName=" + osName + ", osVersion=" + osVersion + "]"; } } }
maven倉庫的依賴
<!-- https://mvnrepository.com/artifact/cz.mallat.uasparser/uasparser -->
<dependency>
<groupId>cz.mallat.uasparser</groupId>
<artifactId>uasparser</artifactId>
<version>0.6.1</version>
</dependency>