diff --git a/hutool-http/src/main/java/cn/hutool/http/HttpGlobalConfig.java b/hutool-http/src/main/java/cn/hutool/http/HttpGlobalConfig.java index 93a70070b..d45d23593 100755 --- a/hutool-http/src/main/java/cn/hutool/http/HttpGlobalConfig.java +++ b/hutool-http/src/main/java/cn/hutool/http/HttpGlobalConfig.java @@ -1,5 +1,6 @@ package cn.hutool.http; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ReflectUtil; import cn.hutool.http.cookie.GlobalCookieManager; @@ -83,14 +84,23 @@ public class HttpGlobalConfig implements Serializable { return; } final Field methodsField = ReflectUtil.getField(HttpURLConnection.class, "methods"); - if (null != methodsField) { - // 去除final修饰 - ReflectUtil.setFieldValue(methodsField, "modifiers", methodsField.getModifiers() & ~Modifier.FINAL); - final String[] methods = { - "GET", "POST", "HEAD", "OPTIONS", "PUT", "DELETE", "TRACE", "PATCH" - }; - ReflectUtil.setFieldValue(null, methodsField, methods); - isAllowPatch = true; + if (null == methodsField) { + throw new HttpException("None static field [methods] with Java version: [{}]", System.getProperty("java.version")); } + + // 去除final修饰 + ReflectUtil.setFieldValue(methodsField, "modifiers", methodsField.getModifiers() & ~Modifier.FINAL); + final String[] methods = { + "GET", "POST", "HEAD", "OPTIONS", "PUT", "DELETE", "TRACE", "PATCH" + }; + ReflectUtil.setFieldValue(null, methodsField, methods); + + // 检查注入是否成功 + final Object staticFieldValue = ReflectUtil.getStaticFieldValue(methodsField); + if(false == ArrayUtil.equals(methods, staticFieldValue)){ + throw new HttpException("Inject value to field [methods] failed!"); + } + + isAllowPatch = true; } } diff --git a/hutool-http/src/test/java/cn/hutool/http/HttpUtilTest.java b/hutool-http/src/test/java/cn/hutool/http/HttpUtilTest.java index 0152a33fe..19626c123 100644 --- a/hutool-http/src/test/java/cn/hutool/http/HttpUtilTest.java +++ b/hutool-http/src/test/java/cn/hutool/http/HttpUtilTest.java @@ -248,6 +248,7 @@ public class HttpUtilTest { @Test @Ignore public void patchTest() { + // 验证patch请求是否可用 String body = HttpRequest.patch("https://www.baidu.com").execute().body(); Console.log(body); } diff --git a/hutool-system/src/test/java/cn/hutool/system/SystemUtilTest.java b/hutool-system/src/test/java/cn/hutool/system/SystemUtilTest.java index b28a3ca27..0602d835f 100644 --- a/hutool-system/src/test/java/cn/hutool/system/SystemUtilTest.java +++ b/hutool-system/src/test/java/cn/hutool/system/SystemUtilTest.java @@ -26,6 +26,12 @@ public class SystemUtilTest { Assert.assertNotNull(javaInfo); } + @Test + public void getJavaRuntimeInfoTest() { + JavaRuntimeInfo info = SystemUtil.getJavaRuntimeInfo(); + Assert.assertNotNull(info); + } + @Test public void getOsInfoTest() { OsInfo osInfo = SystemUtil.getOsInfo();