ServiceUtil工具类
com.justep.util.net.ServiceUtil
- 我们设计一个ServiceUtil工具类实现平台内微服务之间的API调用
- 封装了http请求工具函数
- 提供了处理内网域名和请求header的工具函数
post(HttpServletRequest contextRequest, String serviceName, String path, JSONObject body)
功能:向平台内服务发送post请求
说明:推荐使用
参数:
contextRequest:当前请求对象,我们在请求头封装了一些信息,因此需要将当前请求对象传递到目标服务
serviceName:目标服务名
path:目标服务从controller往后的完整请求路径
body:请求体
返回:
类型:JsonObject
参考:
JSONObject params = new JSONObject();
params.put("process", "/SA/task/taskCenter/taskCenterProcess");
params.put("activity", "mainActivity");
params.put("action", "queryWaitTaskCountAction");
params.put("parameters", userid);
JSONObject ret = ServiceUtil.post(SpringWebUtil.getRequest(), "wf", "/BusinessServer/business-action", params);
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
post(HttpServletRequest contextRequest, String serviceName, String path, JSONObject body, Class
功能:向平台内服务发送post请求,自定义返回类型
说明:推荐使用
参数:
contextRequest:当前请求对象
serviceName:目标服务名
path:目标服务从controller往后的完整请求路径
body:请求体
responseType:期望返回类型
返回:
类型:在responseType参数中传入
参考:
String ret = ServiceUtil.post(SpringWebUtil.getRequest(), "wf", "/BusinessServer/business-action", params, String.class);
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
post(String url, JSONObject body, Map
功能:开放式post请求,可自定义url、header等,可调用外部api
参数:
url:自定义请求路径
body:自定义请求体
headers:自定义请求头
responseType:期望返回类型
返回:
类型:在responseType参数中传入
参考:
String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic";
JSONObject bodyObj = new JSONObject();
HashMap<String, String> headerMap = new HashMap<>();
String ret = ServiceUtil.post(url, bodyObj, headerMap, String.class);
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
post(String url, List
功能:开放式post请求,可自定义url、header等,可调用外部api
参数:
url:自定义请求路径
params:简单名称值对节点类型集合
headers:自定义请求头
responseType:期望返回类型
返回:
类型:在responseType参数中传入
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
post(String url, JSONObject body, Map
功能:开放式post请求,可自定义url、header等,可调用外部api
参数:
url:自定义请求路径
body:自定义请求体
headers:自定义请求头
返回:
类型:JsonObject
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
post(String url, AbstractHttpEntity entity, Map
功能:开放式post请求,可自定义url、header等,可调用外部api
参数:
url:自定义请求路径
entity:AbstractHttpEntity实体
headers:自定义请求头
responseType:期望返回类型
返回:
类型:JsonObject
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
get(HttpServletRequest contextRequest, String serviceName, String path, Map
功能:向平台内服务发送get请求
说明:推荐使用
参数:
contextRequest:当前请求对象
serviceName:目标服务名
path:目标服务从controller往后的完整请求路径
params:请求参数集合
返回:
类型:JsonObject
参考:
Map<String, String> params = new HashMap<>();
JsonObject ret = ServiceUtil.get(SpringWebUtil.getRequest(), "entry", "/uaa/userinfo", params);
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
get(HttpServletRequest contextRequest, String serviceName, String path, Map
功能:向平台内服务发送post请求,自定义返回类型
说明:推荐使用
参数:
contextRequest:当前请求对象
serviceName:目标服务名
path:目标服务从controller往后的完整请求路径
params:请求参数集合
responseType:期望返回类型
返回:
类型:responseType参数传入的类型
参考:
Map<String, String> params = new HashMap<>();
String ret = ServiceUtil.get(SpringWebUtil.getRequest(), "entry", "/uaa/userinfo", params, String.class);
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
get(String url, Map
功能:开放式get请求,可自定义url、header等,可调用外部api
参数:
url:自定义请求路径
params:请求参数集合
headers:自定义请求头
返回:
类型:JsonObject
参考:
String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic";
HashMap<String, String> params = new HashMap<>();
HashMap<String, String> headerMap = new HashMap<>();
JSONObject ret = ServiceUtil.get(url, params, headerMap);
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
get(String url, Map
功能:开放式get请求,自定义返回类型,可自定义url、header等,可调用外部api
参数:
url:自定义请求路径
params:请求参数集合
headers:自定义请求头
responseType:期望返回类型
返回:
类型:responseType参数中传入的类型
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
delete(HttpServletRequest contextRequest, String serviceName, String path, Map
功能:向平台内服务发送delete请求
说明:推荐使用
参数:
contextRequest:当前请求对象
serviceName:目标服务名
path:目标服务从controller往后的完整请求路径
params:请求参数集合
返回:
类型:JsonObject
参考:
Map<String, String> params = new HashMap<>();
JsonObject ret = ServiceUtil.delete(SpringWebUtil.getRequest(), "entry", "/uaa/userinfo", params);
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
delete(HttpServletRequest contextRequest, String serviceName, String path, Map
功能:向平台内服务发送delete请求,自定义返回类型
说明:推荐使用
参数:
contextRequest:当前请求对象
serviceName:目标服务名
path:目标服务从controller往后的完整请求路径
params:请求参数集合
responseType:期望返回类型
返回:
类型:responseType参数传入的类型
参考:
Map<String, String> params = new HashMap<>();
String ret = ServiceUtil.delete(SpringWebUtil.getRequest(), "entry", "/uaa/userinfo", params, String.class);
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
delete(String url, Map
功能:开发delete请求,自定义url,header,可调用外部api
说明:推荐使用
参数:
url:请求完全路径
params:请求参数集合
headers:请求头
返回:
类型:JsonObject
参考:
String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic";
HashMap<String, String> params = new HashMap<>();
HashMap<String, String> headerMap = new HashMap<>();
JSONObject ret = ServiceUtil.get(url, params, headerMap);
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
delete(String url, Map
功能:开放式delete请求,自定义返回类型,可自定义url、header等,可调用外部api
参数:
url:自定义请求路径
params:请求参数集合
headers:自定义请求头
responseType:期望返回类型
返回:
类型:responseType参数中传入的类型
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
getServiceUrl(String serviceName)
功能:通过服务名获取全路径
参数:
serviceName:服务名,如entry,wf
返回:
类型:String
示例:https://entry.newdao-tenant1:8080
参考:getServiceUrl("entry")
getExtHeaders(HttpServletRequest contextRequest)
功能:获取当前请求的扩展头信息
说明:在发送请求中,需要自定义请求头时,可以将当前请求的头信息获取出来,还可增加自定义的头信息
参数:
contextRequest:当前请求对象
返回:
类型:Map<String, String>
示例: