From eeeaf7664aa077b5873c38f35b6a3196530b94a0 Mon Sep 17 00:00:00 2001 From: Looly Date: Thu, 18 Jan 2024 16:12:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DUserAgentUtil=E5=AF=B9QQ?= =?UTF-8?q?=E6=B5=8F=E8=A7=88=E5=99=A8=E8=AF=86=E5=88=AB=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 ++- .../java/cn/hutool/http/useragent/Browser.java | 2 +- .../hutool/http/useragent/UserAgentUtilTest.java | 16 ++++++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed901f0e0..a84fa5393 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,11 +2,12 @@ # 🚀Changelog ------------------------------------------------------------------------------------------------------------- -# 5.8.26(2024-01-16) +# 5.8.26(2024-01-18) ### 🐣新特性 ### 🐞Bug修复 * 【crypto】 修复BouncyCastleProvider导致graalvm应用报错UnsupportedFeatureError(pr#3464@Github) +* 【http 】 修复UserAgentUtil对QQ浏览器识别问题(issue#I8X5XQ@Gitee) ------------------------------------------------------------------------------------------------------------- # 5.8.25(2024-01-11) 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 0b0abf956..3eef7862b 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 @@ -36,7 +36,7 @@ public class Browser extends UserAgentInfo { // 微信小程序 new Browser("miniProgram", "miniProgram", Other_Version), // QQ浏览器 - new Browser("QQBrowser", "MQQBrowser", "MQQBrowser\\/([\\d\\w\\.\\-]+)"), + new Browser("QQBrowser", "QQBrowser", "QQBrowser\\/([\\d\\w\\.\\-]+)"), // 钉钉PC端浏览器 new Browser("DingTalk-win", "dingtalk-win", "DingTalk\\(([\\d\\w\\.\\-]+)\\)"), // 钉钉内置浏览器 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 b17481d99..42142a73b 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 @@ -472,4 +472,20 @@ public class UserAgentUtilTest { Assert.assertEquals("iPhone", ua2.getPlatform().toString()); Assert.assertTrue(ua2.isMobile()); } + + @Test + public void issueI8X5XQTest() { + final String s = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 " + + "Safari/537.36 Core/1.94.218.400 QQBrowser/12.1.5496.400"; + final UserAgent ua2 = UserAgentUtil.parse(s); + + Assert.assertEquals("QQBrowser", ua2.getBrowser().toString()); + Assert.assertEquals("12.1.5496.400", ua2.getVersion()); + Assert.assertEquals("Webkit", ua2.getEngine().toString()); + Assert.assertEquals("537.36", ua2.getEngineVersion()); + Assert.assertEquals("Windows 10 or Windows Server 2016", ua2.getOs().toString()); + Assert.assertEquals("10.0", ua2.getOsVersion()); + Assert.assertEquals("Windows", ua2.getPlatform().toString()); + Assert.assertFalse(ua2.isMobile()); + } }