mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
support edge
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
package cn.hutool.http.useragent;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ReUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* 浏览器对象
|
||||
*
|
||||
@@ -23,7 +23,7 @@ public class Browser extends UserAgentInfo {
|
||||
* 支持的浏览器类型
|
||||
*/
|
||||
public static final List<Browser> browers = CollUtil.newArrayList(//
|
||||
new Browser("MSEdge", "Edge", "edge\\/([\\d\\w\\.\\-]+)"), //
|
||||
new Browser("MSEdge", "Edge|Edg", "edge|Edg\\/([\\d\\w\\.\\-]+)"), //
|
||||
new Browser("Chrome", "chrome", "chrome\\/([\\d\\w\\.\\-]+)"), //
|
||||
new Browser("Firefox", "firefox", Other_Version), //
|
||||
new Browser("IEMobile", "iemobile", Other_Version), //
|
||||
|
@@ -1,9 +1,9 @@
|
||||
package cn.hutool.http.useragent;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import cn.hutool.core.util.ReUtil;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* User-Agent解析器
|
||||
*
|
||||
@@ -46,9 +46,9 @@ public class UserAgentParser {
|
||||
* @return 浏览器类型
|
||||
*/
|
||||
private static Browser parseBrowser(String userAgentString) {
|
||||
for (Browser brower : Browser.browers) {
|
||||
if (brower.isMatch(userAgentString)) {
|
||||
return brower;
|
||||
for (Browser browser : Browser.browers) {
|
||||
if (browser.isMatch(userAgentString)) {
|
||||
return browser;
|
||||
}
|
||||
}
|
||||
return Browser.Unknown;
|
||||
@@ -77,7 +77,7 @@ public class UserAgentParser {
|
||||
* @return 引擎版本
|
||||
*/
|
||||
private static String parseEngineVersion(Engine engine, String userAgentString) {
|
||||
final String regexp = engine.getName() + "[\\/\\- ]([\\d\\w\\.\\-]+)";
|
||||
final String regexp = engine.getName() + "[/\\- ]([\\d\\w.\\-]+)";
|
||||
final Pattern pattern = Pattern.compile(regexp, Pattern.CASE_INSENSITIVE);
|
||||
return ReUtil.getGroup1(pattern, userAgentString);
|
||||
}
|
||||
|
@@ -149,4 +149,17 @@ public class UserAgentUtilTest {
|
||||
Assert.assertEquals("Windows", ua.getPlatform().toString());
|
||||
Assert.assertFalse(ua.isMobile());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseEdgeTest() {
|
||||
String uaStr = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.69 Safari/537.36 Edg/81.0.416.34";
|
||||
UserAgent ua = UserAgentUtil.parse(uaStr);
|
||||
Assert.assertEquals("MSEdge", ua.getBrowser().toString());
|
||||
Assert.assertEquals("81.0.416.34", 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("Windows", ua.getPlatform().toString());
|
||||
Assert.assertFalse(ua.isMobile());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user