mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
修复重定向没有按照RFC7231规范跳转的问题,修改为除了307外重定向使用GET方式
This commit is contained in:
@@ -100,11 +100,6 @@ public class HttpConfig {
|
||||
* @since 5.8.33
|
||||
*/
|
||||
boolean useDefaultContentTypeIfNull = true;
|
||||
/**
|
||||
* 当重定向时,是否使用Get方式发送请求<br>
|
||||
* issue#3722 部分请求要求重定向时,必须使用Get方式发送请求
|
||||
*/
|
||||
boolean useGetIfRedirect;
|
||||
|
||||
/**
|
||||
* 设置超时,单位:毫秒<br>
|
||||
@@ -337,16 +332,4 @@ public class HttpConfig {
|
||||
this.useDefaultContentTypeIfNull = useDefaultContentTypeIfNull;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 重定向时是否使用GET方式
|
||||
*
|
||||
* @param useGetIfRedirect 重定向时是否使用GET方式
|
||||
* @return this
|
||||
* @since 5.8.33
|
||||
*/
|
||||
public HttpConfig setUseGetIfRedirect(boolean useGetIfRedirect) {
|
||||
this.useGetIfRedirect = useGetIfRedirect;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
@@ -1313,9 +1313,12 @@ public class HttpRequest extends HttpBase<HttpRequest> {
|
||||
redirectUrl = UrlBuilder.ofHttpWithoutEncode(location);
|
||||
}
|
||||
setUrl(redirectUrl);
|
||||
if(config.useGetIfRedirect){
|
||||
// since 5.8.33, issue#3722
|
||||
setMethod(Method.GET);
|
||||
// https://www.rfc-editor.org/rfc/rfc7231#section-6.4.7
|
||||
// https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Redirections
|
||||
// 307方法和消息主体都不发生变化。
|
||||
if (HttpStatus.HTTP_TEMP_REDIRECT != responseCode) {
|
||||
// 重定向默认使用GET
|
||||
method(Method.GET);
|
||||
}
|
||||
if (redirectCount < config.maxRedirectCount) {
|
||||
redirectCount++;
|
||||
|
Reference in New Issue
Block a user