fix urlQuery NullPointerException

This commit is contained in:
vitahlin 2022-04-09 16:06:20 +08:00
parent 2b79119c00
commit a49ed29552
2 changed files with 18 additions and 0 deletions

View File

@ -12,6 +12,7 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.core.map.TableMap;
import cn.hutool.core.net.SSLUtil;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.net.url.UrlQuery;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
@ -1173,6 +1174,10 @@ public class HttpRequest extends HttpBase<HttpRequest> {
*/
private void urlWithParamIfGet() {
if (Method.GET.equals(method) && false == this.isRest && this.redirectCount <= 0) {
if (this.url.getQuery() == null) {
this.url.setQuery(new UrlQuery());
}
// 优先使用body形式的参数不存在使用form
if (ArrayUtil.isNotEmpty(this.bodyBytes)) {
this.url.getQuery().parse(StrUtil.str(this.bodyBytes, this.charset), this.charset);

View File

@ -2,8 +2,10 @@ package cn.hutool.http;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.TimeInterval;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Console;
import cn.hutool.core.net.SSLProtocols;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.util.CharsetUtil;
import org.junit.Ignore;
import org.junit.Test;
@ -193,4 +195,15 @@ public class HttpRequestTest {
HttpRequest request =HttpUtil.createGet(url).form(map);
Console.log(request.execute().body());
}
@Test
@Ignore
public void urlWithParamIfGet(){
UrlBuilder urlBuilder = new UrlBuilder();
urlBuilder.setScheme("https").setHost("hutool.cn");
HttpRequest httpRequest = new HttpRequest(urlBuilder);
httpRequest.setMethod(Method.GET);
HttpResponse httpResponse = httpRequest.execute();
}
}