add comment

This commit is contained in:
Looly 2021-06-11 13:47:32 +08:00
parent e2de04d36f
commit 63fc4d175b
3 changed files with 33 additions and 34 deletions

View File

@ -11,6 +11,7 @@
* 【crypto 】 MacEngine增加接口update,doFinal,reset等接口 * 【crypto 】 MacEngine增加接口update,doFinal,reset等接口
* 【core 】 StrSpliter更名为StrSplitter * 【core 】 StrSpliter更名为StrSplitter
* 【core 】 NumberUtil的decimalFormat增加数字检查 * 【core 】 NumberUtil的decimalFormat增加数字检查
* 【http 】 HttpBase的httpVersion方法设置为无效(issue#1644)
### 🐞Bug修复 ### 🐞Bug修复

View File

@ -26,7 +26,7 @@ public abstract class HttpBase<T> {
public static final String HTTP_1_0 = "HTTP/1.0"; public static final String HTTP_1_0 = "HTTP/1.0";
/**HTTP/1.1*/ /**HTTP/1.1*/
public static final String HTTP_1_1 = "HTTP/1.1"; public static final String HTTP_1_1 = "HTTP/1.1";
/**存储头信息*/ /**存储头信息*/
protected Map<String, List<String>> headers = new HashMap<>(); protected Map<String, List<String>> headers = new HashMap<>();
/**编码*/ /**编码*/
@ -40,7 +40,7 @@ public abstract class HttpBase<T> {
/** /**
* 根据name获取头信息<br> * 根据name获取头信息<br>
* 根据RFC2616规范header的name不区分大小写 * 根据RFC2616规范header的name不区分大小写
* *
* @param name Header名 * @param name Header名
* @return Header值 * @return Header值
*/ */
@ -51,7 +51,7 @@ public abstract class HttpBase<T> {
} }
return values.get(0); return values.get(0);
} }
/** /**
* 根据name获取头信息列表 * 根据name获取头信息列表
* @param name Header名 * @param name Header名
@ -62,11 +62,11 @@ public abstract class HttpBase<T> {
if(StrUtil.isBlank(name)) { if(StrUtil.isBlank(name)) {
return null; return null;
} }
final CaseInsensitiveMap<String,List<String>> headersIgnoreCase = new CaseInsensitiveMap<>(this.headers); final CaseInsensitiveMap<String,List<String>> headersIgnoreCase = new CaseInsensitiveMap<>(this.headers);
return headersIgnoreCase.get(name.trim()); return headersIgnoreCase.get(name.trim());
} }
/** /**
* 根据name获取头信息 * 根据name获取头信息
* @param name Header名 * @param name Header名
@ -78,7 +78,7 @@ public abstract class HttpBase<T> {
} }
return header(name.toString()); return header(name.toString());
} }
/** /**
* 设置一个header<br> * 设置一个header<br>
* 如果覆盖模式则替换之前的值否则加入到值列表中 * 如果覆盖模式则替换之前的值否则加入到值列表中
@ -100,7 +100,7 @@ public abstract class HttpBase<T> {
} }
return (T) this; return (T) this;
} }
/** /**
* 设置一个header<br> * 设置一个header<br>
* 如果覆盖模式则替换之前的值否则加入到值列表中 * 如果覆盖模式则替换之前的值否则加入到值列表中
@ -112,7 +112,7 @@ public abstract class HttpBase<T> {
public T header(Header name, String value, boolean isOverride) { public T header(Header name, String value, boolean isOverride) {
return header(name.toString(), value, isOverride); return header(name.toString(), value, isOverride);
} }
/** /**
* 设置一个header<br> * 设置一个header<br>
* 覆盖模式则替换之前的值 * 覆盖模式则替换之前的值
@ -123,7 +123,7 @@ public abstract class HttpBase<T> {
public T header(Header name, String value) { public T header(Header name, String value) {
return header(name.toString(), value, true); return header(name.toString(), value, true);
} }
/** /**
* 设置一个header<br> * 设置一个header<br>
* 覆盖模式则替换之前的值 * 覆盖模式则替换之前的值
@ -134,10 +134,10 @@ public abstract class HttpBase<T> {
public T header(String name, String value) { public T header(String name, String value) {
return header(name, value, true); return header(name, value, true);
} }
/** /**
* 设置请求头 * 设置请求头
* *
* @param headers 请求头 * @param headers 请求头
* @param isOverride 是否覆盖已有头信息 * @param isOverride 是否覆盖已有头信息
* @return this * @return this
@ -147,27 +147,27 @@ public abstract class HttpBase<T> {
if(CollectionUtil.isEmpty(headers)) { if(CollectionUtil.isEmpty(headers)) {
return (T)this; return (T)this;
} }
for (Entry<String, String> entry : headers.entrySet()) { for (Entry<String, String> entry : headers.entrySet()) {
this.header(entry.getKey(), StrUtil.nullToEmpty(entry.getValue()), isOverride); this.header(entry.getKey(), StrUtil.nullToEmpty(entry.getValue()), isOverride);
} }
return (T)this; return (T)this;
} }
/** /**
* 设置请求头<br> * 设置请求头<br>
* 不覆盖原有请求头 * 不覆盖原有请求头
* *
* @param headers 请求头 * @param headers 请求头
* @return this * @return this
*/ */
public T header(Map<String, List<String>> headers) { public T header(Map<String, List<String>> headers) {
return header(headers, false); return header(headers, false);
} }
/** /**
* 设置请求头 * 设置请求头
* *
* @param headers 请求头 * @param headers 请求头
* @param isOverride 是否覆盖已有头信息 * @param isOverride 是否覆盖已有头信息
* @return this * @return this
@ -177,7 +177,7 @@ public abstract class HttpBase<T> {
if(CollectionUtil.isEmpty(headers)) { if(CollectionUtil.isEmpty(headers)) {
return (T)this; return (T)this;
} }
String name; String name;
for (Entry<String, List<String>> entry : headers.entrySet()) { for (Entry<String, List<String>> entry : headers.entrySet()) {
name = entry.getKey(); name = entry.getKey();
@ -187,11 +187,11 @@ public abstract class HttpBase<T> {
} }
return (T)this; return (T)this;
} }
/** /**
* 新增请求头<br> * 新增请求头<br>
* 不覆盖原有请求头 * 不覆盖原有请求头
* *
* @param headers 请求头 * @param headers 请求头
* @return this * @return this
* @since 4.0.3 * @since 4.0.3
@ -200,13 +200,13 @@ public abstract class HttpBase<T> {
if(CollectionUtil.isEmpty(headers)) { if(CollectionUtil.isEmpty(headers)) {
return (T)this; return (T)this;
} }
for (Entry<String,String> entry : headers.entrySet()) { for (Entry<String,String> entry : headers.entrySet()) {
this.header(entry.getKey(), StrUtil.nullToEmpty(entry.getValue()), false); this.header(entry.getKey(), StrUtil.nullToEmpty(entry.getValue()), false);
} }
return (T)this; return (T)this;
} }
/** /**
* 移除一个头信息 * 移除一个头信息
* @param name Header名 * @param name Header名
@ -218,7 +218,7 @@ public abstract class HttpBase<T> {
} }
return (T)this; return (T)this;
} }
/** /**
* 移除一个头信息 * 移除一个头信息
* @param name Header名 * @param name Header名
@ -236,7 +236,7 @@ public abstract class HttpBase<T> {
return Collections.unmodifiableMap(headers); return Collections.unmodifiableMap(headers);
} }
// ---------------------------------------------------------------- Headers end // ---------------------------------------------------------------- Headers end
/** /**
* 返回http版本 * 返回http版本
* @return String * @return String
@ -244,9 +244,10 @@ public abstract class HttpBase<T> {
public String httpVersion() { public String httpVersion() {
return httpVersion; return httpVersion;
} }
/** /**
* 设置http版本 * 设置http版本此方法不会影响到实际请求的HTTP版本只用于帮助判断是否connect:Keep-Alive
* *
* @param httpVersion Http版本{@link HttpBase#HTTP_1_0}{@link HttpBase#HTTP_1_1} * @param httpVersion Http版本{@link HttpBase#HTTP_1_0}{@link HttpBase#HTTP_1_1}
* @return this * @return this
*/ */
@ -262,7 +263,7 @@ public abstract class HttpBase<T> {
public String charset() { public String charset() {
return charset.name(); return charset.name();
} }
/** /**
* 设置字符集 * 设置字符集
* @param charset 字符集 * @param charset 字符集
@ -275,7 +276,7 @@ public abstract class HttpBase<T> {
} }
return (T) this; return (T) this;
} }
/** /**
* 设置字符集 * 设置字符集
* @param charset 字符集 * @param charset 字符集
@ -288,7 +289,7 @@ public abstract class HttpBase<T> {
} }
return (T) this; return (T) this;
} }
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = StrUtil.builder(); StringBuilder sb = StrUtil.builder();
@ -298,10 +299,10 @@ public abstract class HttpBase<T> {
entry.getKey()).append(": ").append(CollUtil.join(entry.getValue(), ",")) entry.getKey()).append(": ").append(CollUtil.join(entry.getValue(), ","))
.append(StrUtil.CRLF); .append(StrUtil.CRLF);
} }
sb.append("Request Body: ").append(StrUtil.CRLF); sb.append("Request Body: ").append(StrUtil.CRLF);
sb.append(" ").append(StrUtil.str(this.bodyBytes, this.charset)).append(StrUtil.CRLF); sb.append(" ").append(StrUtil.str(this.bodyBytes, this.charset)).append(StrUtil.CRLF);
return sb.toString(); return sb.toString();
} }
} }

View File

@ -42,9 +42,6 @@ import java.util.Map;
*/ */
public class HttpRequest extends HttpBase<HttpRequest> { public class HttpRequest extends HttpBase<HttpRequest> {
private static final String CONTENT_TYPE_MULTIPART_PREFIX = ContentType.MULTIPART.getValue() + "; boundary=";
private static final String CONTENT_TYPE_FILE_TEMPLATE = "Content-Type: {}\r\n\r\n";
/** /**
* 设置全局默认的连接和读取超时时长 * 设置全局默认的连接和读取超时时长
* *
@ -387,7 +384,7 @@ public class HttpRequest extends HttpBase<HttpRequest> {
public boolean isKeepAlive() { public boolean isKeepAlive() {
String connection = header(Header.CONNECTION); String connection = header(Header.CONNECTION);
if (connection == null) { if (connection == null) {
return !HTTP_1_0.equalsIgnoreCase(httpVersion); return false == HTTP_1_0.equalsIgnoreCase(httpVersion);
} }
return false == "close".equalsIgnoreCase(connection); return false == "close".equalsIgnoreCase(connection);