mirror of
https://gitee.com/dromara/hutool.git
synced 2025-05-03 20:27:58 +08:00
fix bugs
This commit is contained in:
parent
1edbc0de80
commit
dbcbf53bca
@ -3,7 +3,7 @@
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
# 5.6.3 (2021-04-08)
|
||||
# 5.6.3 (2021-04-10)
|
||||
|
||||
### 新特性
|
||||
* 【core 】 修改数字转换的实现,增加按照指定端序转换(pr#1492@Github)
|
||||
@ -17,12 +17,14 @@
|
||||
* 【cache 】 EnumUtil使用LinkedHashMap(pr#304@Gitee)
|
||||
* 【crypto 】 SymmetricCrypto支持大量数据加密解密(pr#1497@Gitee)
|
||||
* 【http 】 SoapClient增加针对不同协议的头信息(pr#305@Gitee)
|
||||
* 【http 】 HttpRequest支持307、308状态码识别(issue#1504@Gitee)
|
||||
|
||||
### Bug修复
|
||||
* 【core 】 修复Validator.isUrl()传空返回true(issue#I3ETTY@Gitee)
|
||||
* 【db 】 修复数据库driver根据url的判断识别错误问题(issue#I3EWBI@Gitee)
|
||||
* 【json 】 修复JSONStrFormatter换行多余空行问题(issue#I3FA8B@Gitee)
|
||||
* 【core 】 修复UrlPath中的+被转义为空格%20的问题(issue#1501@Github)
|
||||
* 【core 】 修复DateUtil.parse方法对UTC时间毫秒少于3位不识别问题(issue#1503@Github)
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
@ -822,8 +822,12 @@ public class DateUtil extends CalendarUtil {
|
||||
if (length == DatePattern.UTC_PATTERN.length() - 4) {
|
||||
// 格式类似:2018-09-13T05:34:31Z,-4表示减去4个单引号的长度
|
||||
return parse(utcString, DatePattern.UTC_FORMAT);
|
||||
} else if (length == DatePattern.UTC_MS_PATTERN.length() - 4) {
|
||||
}
|
||||
|
||||
final int patternLength = DatePattern.UTC_MS_PATTERN.length();
|
||||
// 格式类似:2018-09-13T05:34:31.999Z,-4表示减去4个单引号的长度
|
||||
// -4 ~ -6范围表示匹配毫秒1~3位的情况
|
||||
if (length <= patternLength - 4 && length >= patternLength - 6) {
|
||||
return parse(utcString, DatePattern.UTC_MS_FORMAT);
|
||||
}
|
||||
} else {
|
||||
|
@ -559,6 +559,23 @@ public class DateUtilTest {
|
||||
Assert.assertEquals("2018-09-13 13:34:39", dateStr);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseUTCTest2(){
|
||||
// issue1503@Github
|
||||
// 检查不同毫秒长度都可以正常匹配
|
||||
String utcTime="2021-03-30T12:56:51.3Z";
|
||||
DateTime parse = DateUtil.parseUTC(utcTime);
|
||||
Assert.assertEquals("2021-03-30 12:56:51", parse.toString());
|
||||
|
||||
utcTime="2021-03-30T12:56:51.34Z";
|
||||
parse = DateUtil.parseUTC(utcTime);
|
||||
Assert.assertEquals("2021-03-30 12:56:51", parse.toString());
|
||||
|
||||
utcTime="2021-03-30T12:56:51.345Z";
|
||||
parse = DateUtil.parseUTC(utcTime);
|
||||
Assert.assertEquals("2021-03-30 12:56:51", parse.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseCSTTest(){
|
||||
String dateStr = "Wed Sep 16 11:26:23 CST 2009";
|
||||
|
@ -1126,7 +1126,7 @@ public class HttpRequest extends HttpBase<HttpRequest> {
|
||||
}
|
||||
|
||||
if (responseCode != HttpURLConnection.HTTP_OK) {
|
||||
if (responseCode == HttpURLConnection.HTTP_MOVED_TEMP || responseCode == HttpURLConnection.HTTP_MOVED_PERM || responseCode == HttpURLConnection.HTTP_SEE_OTHER) {
|
||||
if (HttpStatus.isRedirected(responseCode)) {
|
||||
setUrl(httpConnection.header(Header.LOCATION));
|
||||
if (redirectCount < this.maxRedirectCount) {
|
||||
redirectCount++;
|
||||
|
@ -78,6 +78,18 @@ public class HttpStatus {
|
||||
*/
|
||||
public static final int HTTP_USE_PROXY = 305;
|
||||
|
||||
/**
|
||||
* HTTP 1.1 Status-Code 307: Temporary Redirect.<br>
|
||||
* 见:RFC-7231
|
||||
*/
|
||||
public static final int HTTP_TEMP_REDIRECT = 307;
|
||||
|
||||
/**
|
||||
* HTTP 1.1 Status-Code 308: Permanent Redirect 永久重定向<br>
|
||||
* 见:RFC-7231
|
||||
*/
|
||||
public static final int HTTP_PERMANENT_REDIRECT = 308;
|
||||
|
||||
/* 4XX: client error */
|
||||
|
||||
/**
|
||||
@ -191,4 +203,20 @@ public class HttpStatus {
|
||||
* HTTP Status-Code 505: HTTP Version Not Supported.
|
||||
*/
|
||||
public static final int HTTP_VERSION = 505;
|
||||
|
||||
/**
|
||||
* 是否为重定向状态码
|
||||
* @param responseCode 被检查的状态码
|
||||
* @return 是否为重定向状态码
|
||||
* @since 5.6.3
|
||||
*/
|
||||
public static boolean isRedirected(int responseCode){
|
||||
return responseCode == HTTP_MOVED_PERM
|
||||
|| responseCode == HTTP_MOVED_TEMP
|
||||
|| responseCode == HTTP_SEE_OTHER
|
||||
// issue#1504@Github,307和308是RFC 7538中http 1.1定义的规范
|
||||
|| responseCode == HTTP_TEMP_REDIRECT
|
||||
|| responseCode == HTTP_PERMANENT_REDIRECT;
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user