提交 6703c998 authored 作者: 黄夏豪's avatar 黄夏豪

refactor(base): 修复了代码中不规整的部分

上级 59e0ff01
...@@ -3,13 +3,14 @@ package org.matrix.entity.httpRequest; ...@@ -3,13 +3,14 @@ package org.matrix.entity.httpRequest;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.apache.http.Header; import org.apache.http.Header;
import org.apache.http.message.BasicHeader;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/**
* @author huangxiahao
*/
@Data @Data
public class HttpRequestDetail { public class HttpRequestDetail {
...@@ -18,24 +19,23 @@ public class HttpRequestDetail { ...@@ -18,24 +19,23 @@ public class HttpRequestDetail {
private List<RequestHeader> headers = new ArrayList<>(); private List<RequestHeader> headers = new ArrayList<>();
@ApiModelProperty("URL") @ApiModelProperty("URL")
private String url = new String(); private String url = "";
// @ApiModelProperty("请求类型") @ApiModelProperty("请求类型")
private HttpRequestType requestType = HttpRequestType.NONE; private HttpRequestType requestType = HttpRequestType.NONE;
@ApiModelProperty("请求方法") @ApiModelProperty("请求方法")
private HttpMethod method; private HttpMethod method;
@ApiModelProperty("字符串入参") @ApiModelProperty("字符串入参")
private String stringValue = new String(); private String stringValue = "";
@ApiModelProperty("键值对入参") @ApiModelProperty("键值对入参")
private List<RequestBody> requestBodies = new ArrayList<>(); private List<RequestBody> requestBodies = new ArrayList<>();
/** /**
* 增加键值对入参 * 增加键值对入参
* @param requestBody
* @return
*/ */
private Boolean addRequestBody(RequestBody requestBody) { private Boolean addRequestBody(RequestBody requestBody) {
return requestBodies.add(requestBody); return requestBodies.add(requestBody);
...@@ -43,22 +43,16 @@ public class HttpRequestDetail { ...@@ -43,22 +43,16 @@ public class HttpRequestDetail {
/** /**
* 增加请求头 * 增加请求头
* @param name
* @param value
* @return
*/ */
public Boolean addHeaders(String name, String value) { public void addHeaders(String name, String value) {
return headers.add(new RequestHeader(name, value)); headers.add(new RequestHeader(name, value));
} }
/** /**
* 以数组的形式获取请求头 * 以数组的形式获取请求头
* @return
*/ */
public Header[] getHeadersArray() { public Header[] getHeadersArray() {
List<BasicHeader> collect = return headers.stream().map(RequestHeader::getBasicHeader).toArray(Header[]::new);
headers.stream().map(RequestHeader::getBasicHeader).collect(Collectors.toList());
return collect.toArray(new Header[collect.size()]);
} }
......
...@@ -5,26 +5,57 @@ import org.springframework.lang.Nullable; ...@@ -5,26 +5,57 @@ import org.springframework.lang.Nullable;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
/**
* @author huangxiahao
*/
public enum HttpRequestType { public enum HttpRequestType {
/**
* 通过将变量拼接在url中的方式请求,例如:127.0.0.1?a=1&b=2
*/
QUERY, QUERY,
REST,
/**
* 通过FORM_DATA的方式发起请求
*/
FORM_DATA, FORM_DATA,
/**
* 通过X_WWW_FORM_URLENCODED的方式发起请求
*/
X_WWW_FORM_URLENCODED, X_WWW_FORM_URLENCODED,
/**
* 通过TEXT发起请求
*/
TEXT, TEXT,
/**
* 通过JSON发起请求
*/
JSON, JSON,
/**
* 通过XML发起请求
*/
XML, XML,
/**
* 通过BINARY发起请求
*/
BINARY, BINARY,
/**
* 无任何请求方式,空实现
*/
NONE; NONE;
private static final Map<String, HttpRequestType> mappings = new HashMap(16); private static final Map<String, HttpRequestType> MAPPINGS = new HashMap<>(16);
private HttpRequestType() {
}
@Nullable @Nullable
public static HttpRequestType resolve(@Nullable String method) { public static HttpRequestType resolve(@Nullable String method) {
return method != null ? mappings.get(method) : null; return method != null ? MAPPINGS.get(method) : null;
} }
public boolean matches(String method) { public boolean matches(String method) {
...@@ -34,9 +65,8 @@ public enum HttpRequestType { ...@@ -34,9 +65,8 @@ public enum HttpRequestType {
static { static {
HttpRequestType[] var0 = values(); HttpRequestType[] var0 = values();
int var1 = var0.length; int var1 = var0.length;
for(int var2 = 0; var2 < var1; ++var2) { for (HttpRequestType httpMethod : var0) {
HttpRequestType httpMethod = var0[var2]; MAPPINGS.put(httpMethod.name(), httpMethod);
mappings.put(httpMethod.name(), httpMethod);
} }
} }
......
...@@ -13,8 +13,9 @@ import lombok.NoArgsConstructor; ...@@ -13,8 +13,9 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor @NoArgsConstructor
public class RequestBody { public class RequestBody {
@ApiModelProperty("键") @ApiModelProperty("键")
private String name; private String key;
@ApiModelProperty("参数类型,文件或者文本") @ApiModelProperty("参数类型,文件或者文本")
private MultiPartRequestBodyType type; private MultiPartRequestBodyType type;
......
...@@ -150,10 +150,10 @@ public class HttpClientUtil { ...@@ -150,10 +150,10 @@ public class HttpClientUtil {
for (RequestBody requestBody : requestBodies) { for (RequestBody requestBody : requestBodies) {
switch (requestBody.getType()) { switch (requestBody.getType()) {
case TEXT: case TEXT:
multipartEntityBuilder.addTextBody(requestBody.getName(), requestBody.getValue(), ContentType.create("text/plain", Consts.UTF_8)); multipartEntityBuilder.addTextBody(requestBody.getKey(), requestBody.getValue(), ContentType.create("text/plain", Consts.UTF_8));
break; break;
case FILE: case FILE:
multipartEntityBuilder.addBinaryBody(requestBody.getName(), getFileByPath(requestBody.getValue())); multipartEntityBuilder.addBinaryBody(requestBody.getKey(), getFileByPath(requestBody.getValue()));
break; break;
default: default:
} }
...@@ -164,7 +164,7 @@ public class HttpClientUtil { ...@@ -164,7 +164,7 @@ public class HttpClientUtil {
public HttpEntity getUrlEncodeFormEntity(List<RequestBody> requestBodies) { public HttpEntity getUrlEncodeFormEntity(List<RequestBody> requestBodies) {
List<NameValuePair> param = new ArrayList<>(); List<NameValuePair> param = new ArrayList<>();
for (RequestBody requestBody : requestBodies) { for (RequestBody requestBody : requestBodies) {
param.add(new BasicNameValuePair(requestBody.getName(), requestBody.getValue())); param.add(new BasicNameValuePair(requestBody.getKey(), requestBody.getValue()));
} }
return new UrlEncodedFormEntity(param, StandardCharsets.UTF_8); return new UrlEncodedFormEntity(param, StandardCharsets.UTF_8);
} }
...@@ -203,15 +203,6 @@ public class HttpClientUtil { ...@@ -203,15 +203,6 @@ public class HttpClientUtil {
String url = httpRequestDetail.getUrl(); String url = httpRequestDetail.getUrl();
try { try {
switch (httpRequestDetail.getRequestType()) { switch (httpRequestDetail.getRequestType()) {
case REST:
String regex = "(?<=\\{)(.*?)(?=})";
Pattern pattern = Pattern.compile(regex);
Matcher mat = pattern.matcher(url);
while (mat.find()) {
url = url.replaceAll("\\{" + mat.group() + "}", "1");
}
break;
case QUERY: case QUERY:
if (httpRequestDetail.getMethod().equals(HttpMethod.GET)) { if (httpRequestDetail.getMethod().equals(HttpMethod.GET)) {
URIBuilder uriBuilder ; URIBuilder uriBuilder ;
...@@ -219,7 +210,7 @@ public class HttpClientUtil { ...@@ -219,7 +210,7 @@ public class HttpClientUtil {
for (RequestBody requestBody : httpRequestDetail.getRequestBodies()) { for (RequestBody requestBody : httpRequestDetail.getRequestBodies()) {
switch (requestBody.getType()) { switch (requestBody.getType()) {
case TEXT: case TEXT:
uriBuilder.setParameter(requestBody.getName(), requestBody.getValue()); uriBuilder.setParameter(requestBody.getKey(), requestBody.getValue());
break; break;
case FILE: case FILE:
throw new NullPointerException("QUERY请求不能传入文件流"); throw new NullPointerException("QUERY请求不能传入文件流");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论