添加清空请求参数及请求头方法

This commit is contained in:
彭宇琦 2020-06-26 21:12:40 +08:00
parent 3ca3618c3c
commit a1d634666f
3 changed files with 108 additions and 4 deletions

View File

@ -1,8 +1,19 @@
package pres.auxiliary.tool.http;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Arrays;
import java.util.HashMap;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
/**
* <p><b>文件名</b>EasyHttp.java</p>
* <p><b>用途</b>
@ -55,7 +66,7 @@ public class EasyHttp implements Cloneable {
/**
* 存储字体编码
*/
private String encoding = "";
private String encoding = "UTF-8";
/**
* 用于存储请求头
@ -109,7 +120,7 @@ public class EasyHttp implements Cloneable {
//判断获取的ip是否包含冒号若包含冒号则按照冒号切分ip及端口
if ((index = inter.indexOf(":")) > -1) {
port(inter.substring(index + 1));
port(Integer.valueOf(inter.substring(index + 1)));
host(inter.substring(0, index));
} else {
host(inter);
@ -160,8 +171,8 @@ public class EasyHttp implements Cloneable {
* @param port 端口号
* @return 类本身
*/
public EasyHttp port(String port) {
this.port = port;
public EasyHttp port(int port) {
this.port = String.valueOf(port);
return this;
}
@ -183,11 +194,25 @@ public class EasyHttp implements Cloneable {
* @see #putParameter(String, String)
*/
public EasyHttp putParameter(String parameterText) {
//判断parameterText是否包含等号若不包含则直接返回
if (parameterText.indexOf("=") < 0) {
return this;
}
String[] parameter = parameterText.split("=");
//去空格后传入putParameter方法中
return putParameter(parameter[0].trim(), parameter[1].trim());
}
/**
* 用于清空设置的请求参数
* @return 类本身
*/
public EasyHttp clearParameter() {
parameterMap.clear();
return this;
}
/**
* 用于设置接口的请求体
* @param body 请求体
@ -219,6 +244,20 @@ public class EasyHttp implements Cloneable {
return this;
}
/**
* 用于清空设置的请求头
* @return 类本身
*/
public EasyHttp clearHead() {
headMap.clear();
return this;
}
/**
* 用于设置字体编码默认为UTF-8
* @param encoding 字体编码
* @return 类本身
*/
public EasyHttp encoding(String encoding) {
this.encoding = encoding;
return this;
@ -256,4 +295,51 @@ public class EasyHttp implements Cloneable {
//返回参数并将空格转换为%20
return url.toString().replaceAll(" ", "%20");
}
/**
* 根据设置的内容对接口进行请求返回{@link EasyResponse}类对象可通过该类对响应结果进行返回
* @return {@link EasyResponse}
* @throws URISyntaxException 当url地址有误时抛出的异常
* @throws IOException
* @throws ClientProtocolException
*/
public EasyResponse response() throws URISyntaxException, ClientProtocolException, IOException {
//根据请求方式构造相应的请求类对象
HttpRequestBase request = null;
switch (requestType) {
case POST:
request = new HttpPost(new URI(getUrlString()));
//由于在HttpRequestBase类中不存在设置请求体的参数故若请求为post请求时则先添加请求体
if (!body.isEmpty()) {
((HttpPost) request).setEntity(new StringEntity(body, encoding));
}
break;
case GET:
request = new HttpGet(new URI(getUrlString()));
break;
default:
break;
}
//设置请求头
request = setHead(request);
//对接口进行请求并存储响应结果
String responseText = EntityUtils.toString(HttpClients.createDefault().execute(request).getEntity(), encoding);
//通过响应结果构造EasyResponse类
return new EasyResponse(responseText);
}
/**
* 用于设置请求头
* @param request 请求类对象
* @return 设置请求头的类对象
*/
public HttpRequestBase setHead(HttpRequestBase request) {
//遍历headMap中的内容将请求头逐个设置
headMap.forEach((key, value) -> {
request.setHeader(key, value);
});
return request;
}
}

View File

@ -17,6 +17,17 @@ import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
/**
* <p><b>文件名</b>EasyResponse.java</p>
* <p><b>用途</b>
* 对接口响应参数进行处理可根据不同的返回对响应结果进行输出或以格式化的形式输出响应内容
* </p>
* <p><b>编码时间</b>2020年6月26日下午7:09:07</p>
* <p><b>修改时间</b>2020年6月26日下午7:09:07</p>
* @author 彭宇琦
* @version Ver1.0
*
*/
public class EasyResponse {
/**
* 存储接口响应数据

View File

@ -0,0 +1,7 @@
package pres.auxiliary.tool.http;
public class EasyResponseUtil {
public static void compareResponse(EasyResponse response1, EasyResponse response2) {
}
}