Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/link-kou/plugin-httprequest
基于Okhttp与Retrofit2整合到Spring环境中。提供代码简化。支持SSL、文件上传、文件下载、异步、同步、日志、超时、数据转换等扩展
https://github.com/link-kou/plugin-httprequest
http-client httpclient jax-rs okhttp okhttp3 resful-api restful retrofit2 rxjava3 spring
Last synced: 5 days ago
JSON representation
基于Okhttp与Retrofit2整合到Spring环境中。提供代码简化。支持SSL、文件上传、文件下载、异步、同步、日志、超时、数据转换等扩展
- Host: GitHub
- URL: https://github.com/link-kou/plugin-httprequest
- Owner: Link-Kou
- License: mit
- Created: 2020-05-28T15:33:37.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-12-16T15:42:41.000Z (about 2 years ago)
- Last Synced: 2024-11-21T06:30:22.277Z (2 months ago)
- Topics: http-client, httpclient, jax-rs, okhttp, okhttp3, resful-api, restful, retrofit2, rxjava3, spring
- Language: Java
- Homepage:
- Size: 175 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Plugin-HttpRequest
### Plugin-HttpRequest 能做什么?
> 基于OkHttp的retrofit2二次封装实现以下功能
- 基于Spring实现@Autowired注入
- 扩展输入输出解析,实现自定义拦截器
- 支持Spring环境和非Spring环境## 同类
- `feign` Http请求工具[https://github.com/OpenFeign/feign](https://github.com/OpenFeign/feign)
场景
---
在于第三方对接中,HTTP请求是经常性使用的场景,JavaHttp请求的库有很多。
在初期选择的时候,就是以Android为环境作为参考的。因为Android经常性与后端进行请求对接。相关的库与使用经验上面都是齐备的。
后端在使用HTTP请求的时候,原来都是各种基于类似OkHttp这样子的框架进行封装。
导致的问题也比较多。在使用上面,也是不太方便。所以在工作中基于这一类的问题,进行了封装。
简化使用中的一些繁琐性的问题。Maven
---
```xmlcom.github.link-kou
http-request
1.0.7.2```
支持功能
---
- `SSL` 支持绝对路径输入证书。 `支持`
- `SSL` 支持资源路径输入证书。 `支持`
- `文件上传` 支持Spring文件流上传。 `支持`
- `文件上传` 支持本地文件流上传。 `支持`
- `文件上传` 支持文件上传进度监听。 `支持`
- `自定义@Body参数转换器以及返回参数的转换` 支持自定义转换器来实现对@Body的转换以及返回的转换 `支持`
- `添加XML解析` 支持XML的输入输出解析 `支持`
- `全局添加自定义请求参数` 自定义添加OKHttp拦截器 `支持`
- `日志输出` 日志开关问题。 `支持`
- `多服务请求` 合并多个请求服务。 `支持`
- `超时异常重试` 支持自定义超时重试次数。 `支持`
- `规定时间内请求缓存数据` 支持在一定的时间内请求同一个接口并且请求数据一致情况下缓存数据。 `不支持`
- `文件下载` 支持文件异步下载。 `支持`
- `文件断点下载` 支持文件异步断点下载。 `不支持`代码案例
---
`Spring配置````xml
com
classpath*:*/*/httpurl.properties
```
```java
/**
* @author lk
* @version 1.0
* @date 2020/9/11 11:29
*/
public class HttpRequestConfig {@Bean
public HTTPBeanProcessor httpBeanProcessor() throws IOException {
HTTPBeanProcessor httpBeanProcessor = new HTTPBeanProcessor();
httpBeanProcessor.setPrefix(Arrays.asList("com").toArray(new String[0]));
final HttpReturnJsonConversion httpReturnJsonConversion = new HttpReturnJsonConversion();
httpBeanProcessor.setHttpConversion(Arrays.asList(httpReturnJsonConversion));
httpBeanProcessor.setLocations(
new PathMatchingResourcePatternResolver().getResources("classpath*:httpurl.properties")
);
return httpBeanProcessor;
}
}```
`基本使用方式`
---
支持retrofit2所有使用方式。你会retrofit2就可以极低成本的在Spring环境中使用retrofit2。于此同时。借助retrofit2的齐全文档。有效解决学习成本问题```java
/**
* 高德API示列
*
* @author lk
* @version 1.0
* @date 2019/4/17 17:53
*/
@HTTPRequest(value = @Value("${amap.url}"))
public interface ApiAmap {/**
* 高德 天气查询
*
* @param key 用户在高德地图官网申请web服务API类型KEY
* @param city 输入城市的adcode,adcode信息可参考城市编码表
* @param extensions 可选值:base/all base:返回实况天气 all:返回预报天气 可选性输入null
* @param output 可选值:JSON,XML 可选性输入null
* @return 天气对象
*/
@GET("weather/weatherInfo")
HTTPResponse weather(@Query("key") String key,
@Query("city") String city,
@Query("extensions") String extensions,
@Query("output") String output);}
```
代码案例
---
`非Spring配置````java
@HTTPRequestTest("httpurl.properties")
private ApiAmap apiAmap;```