totalo 5 years ago
parent
commit
eb1208389b

+ 2 - 1
hutool-http/src/main/java/cn/hutool/http/useragent/Browser.java

@@ -45,7 +45,8 @@ public class Browser extends UserAgentInfo {
 			new Browser("Yammer Desktop", "AdobeAir", "([\\d\\w\\.\\-]+)\\/Yammer"), //
 			new Browser("Yammer Mobile", "Yammer[\\s]+([\\d\\w\\.\\-]+)", "Yammer[\\s]+([\\d\\w\\.\\-]+)"), //
 			new Browser("Apache HTTP Client", "Apache\\\\-HttpClient", "Apache\\-HttpClient\\/([\\d\\w\\.\\-]+)"), //
-			new Browser("BlackBerry", "BlackBerry", "BlackBerry[\\d]+\\/([\\d\\w\\.\\-]+)")//
+			new Browser("BlackBerry", "BlackBerry", "BlackBerry[\\d]+\\/([\\d\\w\\.\\-]+)"),//
+			new Browser("MicroMessenger", "MicroMessenger", "MicroMessenger\\/([\\d\\w\\.\\-]+)")//
 	);
 
 	private Pattern versionPattern;

+ 16 - 0
hutool-http/src/test/java/cn/hutool/http/useragent/UserAgentUtilTest.java

@@ -188,4 +188,20 @@ public class UserAgentUtilTest {
 		Assert.assertEquals("Windows", ua.getPlatform().toString());
 		Assert.assertFalse(ua.isMobile());
 	}
+
+	/**
+	 * https://github.com/looly/hutool/issues/1177
+	 */
+	@Test
+	public void parseMicroMessengerTest() {
+		String uaString = "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Mobile/15A372 MicroMessenger/7.0.17(0x17001127) NetType/WIFI Language/zh_CN";
+		UserAgent ua = UserAgentUtil.parse(uaString);
+		Assert.assertEquals("MicroMessenger", ua.getBrowser().toString());
+		Assert.assertEquals("7.0.17", ua.getVersion());
+		Assert.assertEquals("Webkit", ua.getEngine().toString());
+		Assert.assertEquals("604.1.38", ua.getEngineVersion());
+		Assert.assertEquals("iPhone", ua.getOs().toString());
+		Assert.assertEquals("iPhone", ua.getPlatform().toString());
+		Assert.assertFalse(ua.isMobile());
+	}
 }