场景
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。