1. 介绍
介绍如何使用http访问操作服务的插件
本插件应付的场景:很多情况下只是需要服务器端的对其他远程服务器的http访问交互等功能(如微信oauth2的token换取).而apache的httpclient类库依赖的jar很多,容易与现有项目的jar冲突。
本插件只使用JDK的java.net.URL类完成http访问交互,最大程度的减少隐含的jar包冲突,
插件默认提供一个X509的空实现,用于不启用客户端验证的https链接。如有特殊情况的ssl限制,请自行实现。
http访问操作服务的插件
2. 使用
gradle中增加
implementation('org.yunchen.gb:gb-plugin-http-utils:1.2.0')
在controller或service中注入HttpService,并调用相关的方法
@Autowired
HttpService httpService
使用操作
//使用http post 方式发送数据
//method 值为'POST','GET'
//String data = URLEncoder.encode("data", "UTF-8") + "=" + URLEncoder.encode(file.text, "UTF-8");
//data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
//clientId和clientSecret是basicAuth的账户名称及密码,若无则传入null
//cookie 若无则传入null
public String postData(String address,String data,String method,String clientId,String clientSecret,String cookie,String sendEncode='utf-8',String receiveEncode='utf-8')
//使用https post 方式发送String数据
public String postDataViaHttps(String address,String data,String method,String cookie,String sendEncode='utf-8',String receiveEncode='utf-8')
//使用https post 方式发送文件数据
public String postFilesViaHttps(String address,List<File> files,Map<String,String> dataMap,String cookie,String sendEncode='utf-8',String receiveEncode='utf-8')
//使用https post 方式发送String数据,返回数据流
public InputStream getDataViaHttps(address,data,method,cookie,String sendEncode='utf-8')