diff --git a/hutool-http/src/main/java/cn/hutool/http/useragent/Browser.java b/hutool-http/src/main/java/cn/hutool/http/useragent/Browser.java index 2ef37ba85..131569bfa 100755 --- a/hutool-http/src/main/java/cn/hutool/http/useragent/Browser.java +++ b/hutool-http/src/main/java/cn/hutool/http/useragent/Browser.java @@ -37,6 +37,8 @@ public class Browser extends UserAgentInfo { new Browser("miniProgram", "miniProgram", Other_Version), // QQ浏览器 new Browser("QQBrowser", "MQQBrowser", "MQQBrowser\\/([\\d\\w\\.\\-]+)"), + // 钉钉PC端浏览器 + new Browser("DingTalk-win", "dingtalk-win", "DingTalk\\(([\\d\\w\\.\\-]+)\\)"), // 钉钉内置浏览器 new Browser("DingTalk", "DingTalk", "AliApp\\(DingTalk\\/([\\d\\w\\.\\-]+)\\)"), // 支付宝内置浏览器 diff --git a/hutool-http/src/main/java/cn/hutool/http/useragent/UserAgentInfo.java b/hutool-http/src/main/java/cn/hutool/http/useragent/UserAgentInfo.java index 89c2ba966..2f943ac3d 100755 --- a/hutool-http/src/main/java/cn/hutool/http/useragent/UserAgentInfo.java +++ b/hutool-http/src/main/java/cn/hutool/http/useragent/UserAgentInfo.java @@ -14,6 +14,9 @@ import java.util.regex.Pattern; public class UserAgentInfo implements Serializable { private static final long serialVersionUID = 1L; + /** + * 未知类型 + */ public static final String NameUnknown = "Unknown"; /** 信息名称 */ diff --git a/hutool-http/src/test/java/cn/hutool/http/useragent/UserAgentUtilTest.java b/hutool-http/src/test/java/cn/hutool/http/useragent/UserAgentUtilTest.java index 0f84a24cf..21047c802 100644 --- a/hutool-http/src/test/java/cn/hutool/http/useragent/UserAgentUtilTest.java +++ b/hutool-http/src/test/java/cn/hutool/http/useragent/UserAgentUtilTest.java @@ -412,4 +412,18 @@ public class UserAgentUtilTest { final UserAgent ua = UserAgentUtil.parse(uaStr); Assert.assertEquals("Linux", ua.getOs().toString()); } + + @Test + public void issueI60UOPTest() { + final String uaStr = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36 dingtalk-win/1.0.0 nw(0.14.7) DingTalk(6.5.40-Release.9059101) Mojo/1.0.0 Native AppType(release) Channel/201200"; + final UserAgent ua = UserAgentUtil.parse(uaStr); + Assert.assertEquals("DingTalk-win", ua.getBrowser().toString()); + Assert.assertEquals("6.5.40-Release.9059101", ua.getVersion()); + Assert.assertEquals("Webkit", ua.getEngine().toString()); + Assert.assertEquals("537.36", ua.getEngineVersion()); + Assert.assertEquals("Windows 10 or Windows Server 2016", ua.getOs().toString()); + Assert.assertEquals("10.0", ua.getOsVersion()); + Assert.assertEquals("Windows", ua.getPlatform().toString()); + Assert.assertFalse(ua.isMobile()); + } }