场景
easyHttp gitte 很高兴帮到您 点一个star 支持一下作者吧
之前的easyHttp只支持json类型post请求,而且有些接口有限制次数的,在循环调用过程中,容易出现突破限制的情况,现在我们引入了限制次数,例如一分钟6次,就算循环调它也会自己去调度次数。
form类型post
支持form 类型的post请求
“Content-Type”,“application/x-www-form-urlencoded”
public static void main(String[] args) {
RequestConfig requestConfig = new RequestConfig();
requestConfig.setUrl("https://test");
requestConfig.setEndpoint("oauth/token");
requestConfig.setHttpMethod(HttpMethod.POST);
// 请求头
Map<String,Object> headers = new HashMap<>();
headers.put("Content-Type","application/x-www-form-urlencoded");
// String requestBody = "grant_type=client_credentials&client_id=l70a99ddd0f0494643884386ad49660b26&client_secret=54f87417c85c4334aec93360624b4e1c";
Map<String,Object> form = new HashMap<>();
form.put("grant_type","client_credentials");
form.put("client_id","123");
form.put("client_secret","456");
GenericHttpAdapter<String> adapter = new GenericHttpAdapter<>(String.class);
requestConfig.setForm(form);
CustomResponse<String> response = adapter.sendGenericRequest(requestConfig);
requestConfig.setHeaders(headers);
// 处理响应
if (response.getStatus() == 200) {
System.out.println("请求成功:" + response.getData());
} else {
System.out.println("请求失败:" + response.getMsg());
}
}
这样我们支持了form类型的接口调用.
限制次数的限制
// 创建一个RequestConfig对象并配置请求参数
RequestConfig requestConfig = new RequestConfig();
// 限制次数
requestConfig.limitHttpRequest(6,1, TimeUnit.MINUTES);
requestConfig.setRequestType(RequestType.TEST);
requestConfig.setHttpMethod(HttpMethod.POST);
requestConfig.setRequestBody(new StringBuilder("{\n" +
"}").toString());
Map<String, Object> queryParam = new HashMap<>();
requestConfig.setQueryParams(queryParam);
Map<String, Object> headerMap = new HashMap<>();
headerMap.put("X-API-KEY", "123456");
requestConfig.setHeaders(headerMap);
// 创建适配器并发送请求
GenericHttpAdapter<String> adapter = new GenericHttpAdapter<>(String.class);
CustomResponse<String> response = adapter.sendGenericRequest(requestConfig);
// 处理响应
if (response.getStatus() == 200) {
System.out.println("请求成功:" + response.getData());
} else {
System.out.println("请求失败:" + response.getMsg());
}
这样就可以完成1分钟只能调用6次,防止ip被封(对外),数据击穿(对内)等风险。
后续更新
后续会陆续上 异步请求(预计十一月底),上传下载等功能,easyHttp使得调用方和接收方统一,是一个高性能(基于okhttp)的http工具,能够适配绝大部分http调用(对外,对内)场景,欢迎大家使用和提出意见!
结束
如有问题,可以私信作者(博客私信或者gitte提供的邮箱),有问必答,非easyHttp问题也可交流,一起学习一起进步,也欢迎一起建设easyHttp。