服务工具类 ServiceUtil
com.justep.util.net.ServiceUtil 类实现 API 调用,主要用于平台微服务间的 API 调用
- 封装了 http 请求工具函数
- 提供了处理内网域名和请求 header 的工具函数
- 通过 post 方法支持文件上传
post
该类型请求参数类型支持 JSONObject、List <NameValuePair>
及 AbstractHttpEntity,支持请求头及响应头设置、响应数据类型设置、请求回调设置
- post(String serviceName, String path, JSONObject body)
- post(HttpServletRequest contextRequest, String serviceName, String path, JSONObject body)
- post(HttpServletRequest contextRequest, String serviceName, String path, JSONObject body, Class
<T>
responseType) - post(String url, JSONObject body, Map
headers) - post(String url, JSONObject body, Map
headers, Class <T>
responseType) - post(String url, List
<NameValuePair>
params, Mapheaders, Class <T>
responseType) - post(String url, JSONObject body, Map
headers) - post(String url, JSONObject body, Map
headers, Class <T>
responseType) - post(String url, JSONObject body, Map
headers, Class <T>
responseType,Map`> respHeader) - post(String url, AbstractHttpEntity entity, Map
headers, Class <T>
responseType) - post(String url, AbstractHttpEntity entity, Map
headers, Class <T>
responseType,Map`> respHeader) - post(String url, AbstractHttpEntity entity, Map
headers, Class <T>
responseType, ServiceRequestBuildCallback callback) - post(String url, AbstractHttpEntity entity, Map
headers, Class <T>
responseType, ServiceRequestBuildCallback callback, Map`> respHeader)
post(String serviceName, String path, JSONObject body)
功能:向平台内服务发送 post 请求
说明:推荐使用
参数:
serviceName:目标服务名
path:目标服务从 controller 往后的完整请求路径
body:请求体
返回:
类型:JsonObject
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
示例:
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("wf", "/BusinessServer/business-action", params);
post(HttpServletRequest contextRequest, String serviceName, String path, JSONObject body)
post(HttpServletRequest contextRequest, String serviceName, String path, JSONObject body, Class <T>
responseType)
功能:向平台内服务发送 post 请求
说明:推荐使用
参数:
contextRequest:当前请求对象,请求头封装了一些信息,因此需要将当前请求对象传递到目标服务
serviceName:目标服务名
path:目标服务从 controller 往后的完整请求路径
body:请求体
responseType:期望返回类型
返回:
类型:JsonObject 或 responseType 类型
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
示例:
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);
String ret = ServiceUtil.post(SpringWebUtil.getRequest(), "wf", "/BusinessServer/business-action", params, String.class);
post(String url, JSONObject body, Map<T>
responseType)
功能:开放式 post 请求,可自定义 url、header 等,可调用外部 api
参数:
url:自定义请求路径
body:自定义请求体
headers:自定义请求头
responseType:期望返回类型
返回:
类型:JsonObject 或在 responseType 参数中传入
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
示例:
String url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic";
JSONObject bodyObj = new JSONObject();
HashMap<String, String> headerMap = new HashMap<>();
JSONObject ret = ServiceUtil.post(url, bodyObj, headerMap);
String ret = ServiceUtil.post(url, bodyObj, headerMap, String.class);
post(String url, List <NameValuePair>
params, Map<T>
responseType)
功能:开放式 post 请求,可自定义 url、header 等,可调用外部 api
参数:
url:自定义请求路径
params:简单名称值对节点类型集合
headers:自定义请求头
responseType:期望返回类型
返回:
类型:在 responseType 参数中传入
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
示例:
List<NameValuePair> params=new ArrayList<>();
params.add(new BasicNameValuePair("username","test"));
params.add(new BasicNameValuePair("password","123456"));
Map<String, String> headerMap = new HashMap<>();
headerMap.put("content-type", "application/json;charset=UTF-8");
headerMap.put("Accept", "application/json");
String ret = ServiceUtil.post("http://entry", params, headerMap, String.class);
post(String url, JSONObject body, Map<T>
responseType)<T>
responseType,Map
功能:开放式 post 请求,可自定义 url、header 等,可调用外部 api
参数:
url:自定义请求路径
body:自定义请求体
headers:自定义请求头
responseType:期望返回类型
respHeader:自定义响应头
返回:
类型:JsonObject 或在 responseType 参数中传入
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
示例:
JSONObject jsonParams = new JSONObject();
jsonParams.put("process", "/SA/task/taskCenter/taskCenterProcess");
jsonParams.put("activity", "mainActivity");
jsonParams.put("action", "queryWaitTaskCountAction");
jsonParams.put("parameters", "1234");
Map<String, String> headerMap = new HashMap<>();
headerMap.put("content-type", "application/json;charset=UTF-8");
headerMap.put("Accept", "application/json");
Map<String, List<String>> respHeaderMap = new HashMap<>();
respHeaderMap.put("X-Credential-User-Id",Arrays.asList("123"));
JSONObject ret3 = ServiceUtil.post("http://entry", jsonParams,headerMap);
String ret4 = ServiceUtil.post("http://entry", jsonParams,headerMap,String.class);
String ret5 = ServiceUtil.post("http://entry", jsonParams,headerMap,String.class,respHeaderMap);
post(String url, AbstractHttpEntity entity, Map<T>
responseType)<T>
responseType,Map<T>
responseType, ServiceRequestBuildCallback callback)<T>
responseType, ServiceRequestBuildCallback callback, Map
功能:开放式 post 请求,可自定义 url、header 等,可调用外部 api
参数:
url:自定义请求路径
entity:AbstractHttpEntity 实体
headers:自定义请求头
responseType:期望返回类型
callback:构造回调,可以配置任意 httpclient 支持的参数。如果有统一设置的需求,可以项目上封装 api 使用。ServiceUtil 的所有方法都支持传 ServiceRequestBuildCallback,这些默认值都是平台经过实践测试比较好的配置,通用修改请谨慎,单个 api 没有关系
respHeader:自定义响应头
返回:
类型:JsonObject 或在 responseType 参数中传入
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
示例:文件上传
Map<String, String> headerMap = new HashMap<>();
headerMap.put("content-type", "charset=UTF-8");
headerMap.put("Accept", "application/json");
Map<String, List<String>> respHeaderMap = new HashMap<>();
respHeaderMap.put("X-Credential-User-Id", Arrays.asList("123"));
File file = new File("path/to/your/file"); // 设置要上传的文件路径
// 创建BasicHttpEntity示例
BasicHttpEntity httpEntity = new BasicHttpEntity();
try (FileInputStream fileInputStream = new FileInputStream(file)) {
// 设置内容
httpEntity.setContent(fileInputStream);
// 设置内容类型
httpEntity.setContentType(ContentType.DEFAULT_BINARY.toString());
// 设置内容长度
httpEntity.setContentLength(file.length());
}
//请求回调设置
ServiceRequestBuildCallback serviceRequestBuildCallback=new ServiceRequestBuildCallback() {
public void doInServiceRequestBuild(HttpRequestBase request) {
RequestConfig.Builder custom = RequestConfig.custom();
// 超时60s
custom.setConnectionRequestTimeout(60000);
// 设置忽略set - cookie方案
custom.setCookieSpec(CookieSpecs.IGNORE_COOKIES);
RequestConfig requestConfig = custom.build();
request.setConfig(requestConfig);
}
};
String result1 = ServiceUtil.post("http://entry", httpEntity, headerMap, String.class);
String result2 = ServiceUtil.post("http://entry", httpEntity, headerMap, String.class,respHeaderMap);
String result3 = ServiceUtil.post("http://entry", httpEntity, headerMap, String.class,serviceRequestBuildCallback);
String result4 = ServiceUtil.post("http://entry", httpEntity, headerMap, String.class,serviceRequestBuildCallback,respHeaderMap);
get
该类型请求参数支持 url 参数及 Map 类型参数,支持请求头及响应头设置、响应数据类型设置、请求回调设置
- get(String serviceName, String path)
- get(HttpServletRequest contextRequest, String serviceName, String path,Map
params) - get(HttpServletRequest contextRequest, String serviceName, String path,Map
params, Class <T>
responseType) - get(String url, Map
params, Map headers) - get(String url, Map
params, Map headers,Class <T>
responseType) - get(String url, Map
params, Map headers, Class <T>
responseType,ServiceRequestBuildCallback callback) - get(String url, Map
params, Map headers, Class <T>
responseType,ServiceRequestBuildCallback callback, Map`> respHeader)
get(String serviceName, String path)
功能:向平台内服务发送 get 请求
说明:推荐使用
参数:
serviceName:目标服务名
path:目标服务从 controller 往后的完整请求路径
返回:
类型:JsonObject
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
示例:
Map<String, String> params = new HashMap<>();
JsonObject ret = ServiceUtil.get("entry", "/uaa/userinfo");
get(HttpServletRequest contextRequest, String serviceName, String path, Map<T>
responseType)
功能:向平台内服务发送 get 请求,自定义返回类型
说明:推荐使用
参数:
contextRequest:当前请求对象
serviceName:目标服务名
path:目标服务从 controller 往后的完整请求路径
params:请求参数集合
responseType:期望返回类型
返回:
类型:responseType 参数传入的类型
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
示例:
Map<String, String> params = new HashMap<>();
JsonObject ret = ServiceUtil.get(SpringWebUtil.getRequest(), "entry", "/uaa/userinfo", params);
String ret = ServiceUtil.get(SpringWebUtil.getRequest(), "entry", "/uaa/userinfo", params, String.class);
get(String url, Map<T>
responseType)<T>
responseType,ServiceRequestBuildCallback callback)<T>
responseType,ServiceRequestBuildCallback callback, Map
功能:开放式 get 请求,自定义返回类型,可自定义 url、header 等,可调用外部 api
参数:
url:自定义请求路径
params:请求参数集合
headers:自定义请求头
responseType:期望返回类型
callback:构造回调,可以配置任意 httpclient 支持的参数。如果有统一设置的需求,可以项目上封装 api 使用。ServiceUtil 的所有方法都支持传 ServiceRequestBuildCallback,这些默认值都是平台经过实践测试比较好的配置,通用修改请谨慎,单个 api 没有关系
respHeader:响应头
返回:
类型:responseType 参数中传入的类型
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
示例:
Map<String, String> paramsMap = new HashMap<>();
paramsMap.put("username", "test");
paramsMap.put("password", "123456");
Map<String, String> headerMap = new HashMap<>();
headerMap.put("content-type", "application/json;charset=UTF-8");
headerMap.put("Accept", "application/json");
Map<String, List<String>> respHeaderMap = new HashMap<>();
respHeaderMap.put("X-Credential-User-Id", Arrays.asList("123"));
//请求回调设置
ServiceRequestBuildCallback serviceRequestBuildCallback=new ServiceRequestBuildCallback() {
public void doInServiceRequestBuild(HttpRequestBase request) {
RequestConfig.Builder custom = RequestConfig.custom();
// 超时60s
custom.setConnectionRequestTimeout(60000);
// 设置忽略set - cookie方案
custom.setCookieSpec(CookieSpecs.IGNORE_COOKIES);
RequestConfig requestConfig = custom.build();
request.setConfig(requestConfig);
}
};
JSONObject result11 = ServiceUtil.get("http://entry", paramsMap, headerMap);
String result12 = ServiceUtil.get("http://entry", paramsMap, headerMap, String.class);
String result13 = ServiceUtil.get("http://entry", paramsMap, headerMap, String.class,serviceRequestBuildCallback);
String result14 = ServiceUtil.get("http://entry", paramsMap, headerMap, String.class,serviceRequestBuildCallback,respHeaderMap);
put
该类型请求参数类型支持 JSONObject、List <NameValuePair>
及 AbstractHttpEntity,支持请求头及响应头设置、响应数据类型设置、请求回调设置
- put(String serviceName, String path, JSONObject body)
- put(HttpServletRequest contextRequest, String serviceName, String path, JSONObject body)
- put(HttpServletRequest contextRequest, String serviceName, String path, JSONObject body,Class
<T>
responseType) - put(String url, JSONObject body, Map
headers) - put(String url, JSONObject body, Map
headers, Class <T>
responseType) - put(String url, JSONObject body, Map
headers, Class <T>
responseType,Map`> respHeader) - put(String url, List
<NameValuePair>
params, Mapheaders,Class <T>
responseType) - put(String url, AbstractHttpEntity entity, Map
headers, Class <T>
responseType) - put(String url, AbstractHttpEntity entity, Map
headers, Class <T>
responseType,Map`> respHeader) - put(String url, AbstractHttpEntity entity, Map
headers, Class <T>
responseType,ServiceRequestBuildCallback callback) - put(String url, AbstractHttpEntity entity, Map
headers, Class <T>
responseType,ServiceRequestBuildCallback callback, Map`> respHeader)
put(String serviceName, String path, JSONObject body)
功能:向平台内服务发送 put 请求
说明:推荐使用
参数:
serviceName:目标服务名
path:目标服务从 controller 往后的完整请求路径
body:请求体
返回:
类型:JsonObject
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
示例:
JSONObject params = new JSONObject();
params.put("parameters", userid);
JSONObject ret = ServiceUtil.put("wf", "/test/user", params);
put(HttpServletRequest contextRequest, String serviceName, String path, JSONObject body)
put(HttpServletRequest contextRequest, String serviceName, String path, JSONObject body,Class <T>
responseType)
功能:向平台内服务发送 put 请求
说明:推荐使用
参数:
contextRequest:当前请求对象,请求头封装了一些信息,因此需要将当前请求对象传递到目标服务
serviceName:目标服务名
path:目标服务从 controller 往后的完整请求路径
body:请求体
responseType:期望返回类型
返回:
类型:JsonObject 或 responseType 类型
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
示例:
JSONObject params = new JSONObject();
params.put("parameters", userid);
JsonObject ret = ServiceUtil.put(SpringWebUtil.getRequest(), "wf", "/test/user", params);
String ret = ServiceUtil.put(SpringWebUtil.getRequest(), "wf", "/test/user", params, String.class);
put(String url, JSONObject body, Map<T>
responseType)<T>
responseType,Map
功能:开放式 put 请求,可自定义 url、header 等,可调用外部 api
参数:
url:自定义请求路径
body:自定义请求体
headers:自定义请求头
responseType:期望返回类型
respHeader:自定义响应头
返回:
类型:JsonObject 或在 responseType 参数中传入
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
示例:
JSONObject jsonParams = new JSONObject();
jsonParams.put("process", "/SA/task/taskCenter/taskCenterProcess");
jsonParams.put("activity", "mainActivity");
jsonParams.put("action", "queryWaitTaskCountAction");
jsonParams.put("parameters", "1234");
Map<String, String> headerMap = new HashMap<>();
headerMap.put("content-type", "application/json;charset=UTF-8");
headerMap.put("Accept", "application/json");
Map<String, List<String>> respHeaderMap = new HashMap<>();
respHeaderMap.put("X-Credential-User-Id",Arrays.asList("123"));
JSONObject ret3 = ServiceUtil.put("http://entry", jsonParams,headerMap);
String ret4 = ServiceUtil.put("http://entry", jsonParams,headerMap,String.class);
String ret5 = ServiceUtil.put("http://entry", jsonParams,headerMap,String.class,respHeaderMap);
put(String url, List <NameValuePair>
params, Map<T>
responseType)
功能:开放式 put 请求,可自定义 url、header 等,可调用外部 api
参数:
url:自定义请求路径
params:简单名称值对节点类型集合
headers:自定义请求头
responseType:期望返回类型
返回:
类型:在 responseType 参数中传入
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
示例:
List<NameValuePair> params=new ArrayList<>();
params.add(new BasicNameValuePair("username","test"));
params.add(new BasicNameValuePair("password","123456"));
Map<String, String> headerMap = new HashMap<>();
headerMap.put("content-type", "application/json;charset=UTF-8");
headerMap.put("Accept", "application/json");
String ret = ServiceUtil.put("http://entry", params, headerMap, String.class);
put(String url, AbstractHttpEntity entity, Map<T>
responseType)<T>
responseType,Map<T>
responseType,ServiceRequestBuildCallback callback)<T>
responseType,ServiceRequestBuildCallback callback, Map
功能:开放式 put 请求,可自定义 url、header 等,可调用外部 api
参数:
url:自定义请求路径
entity:AbstractHttpEntity 实体
headers:自定义请求头
responseType:期望返回类型
callback:构造回调,可以配置任意 httpclient 支持的参数。如果有统一设置的需求,可以项目上封装 api 使用。ServiceUtil 的所有方法都支持传 ServiceRequestBuildCallback,这些默认值都是平台经过实践测试比较好的配置,通用修改请谨慎,单个 api 没有关系
respHeader:自定义响应头
返回:
类型:JsonObject 或在 responseType 参数中传入
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
示例:
Map<String, String> headerMap = new HashMap<>();
headerMap.put("content-type", "charset=UTF-8");
headerMap.put("Accept", "application/json");
Map<String, List<String>> respHeaderMap = new HashMap<>();
respHeaderMap.put("X-Credential-User-Id", Arrays.asList("123"));
// 创建 BasicHttpEntity 实例
String json = "{\"key1\":\"value1\",\"key2\":\"value2\"}";
BasicHttpEntity httpEntity = new BasicHttpEntity();
httpEntity.setContentType(ContentType.APPLICATION_JSON.toString());
httpEntity.setContentLength(json.getBytes().length);
httpEntity.writeTo(System.out);
//请求回调设置
ServiceRequestBuildCallback serviceRequestBuildCallback=new ServiceRequestBuildCallback() {
public void doInServiceRequestBuild(HttpRequestBase request) {
RequestConfig.Builder custom = RequestConfig.custom();
// 超时60s
custom.setConnectionRequestTimeout(60000);
// 设置忽略set - cookie方案
custom.setCookieSpec(CookieSpecs.IGNORE_COOKIES);
RequestConfig requestConfig = custom.build();
request.setConfig(requestConfig);
}
};
String result1 = ServiceUtil.put("http://entry", httpEntity, headerMap, String.class);
String result2 = ServiceUtil.put("http://entry", httpEntity, headerMap, String.class,respHeaderMap);
String result3 = ServiceUtil.put("http://entry", httpEntity, headerMap, String.class,serviceRequestBuildCallback);
String result4 = ServiceUtil.put("http://entry", httpEntity, headerMap, String.class,serviceRequestBuildCallback,respHeaderMap);
delete
该类型请求参数类型仅支持 Map 类型,支持请求头设置、响应数据类型设置、请求回调设置
- delete(HttpServletRequest contextRequest, String serviceName, String path, Map
params) - delete(HttpServletRequest contextRequest, String serviceName, String path, Map
params, Class <T>
responseType) - delete(String url, Map
params, Map headers) - delete(String url, Map
params, Map headers, Class <T>
responseType) - delete(String url, Map
params, Map headers, Class <T>
responseType, ServiceRequestBuildCallback callback)
delete(HttpServletRequest contextRequest, String serviceName, String path, Map<T>
responseType)
功能:向平台内服务发送 delete 请求,自定义返回类型
说明:推荐使用
参数:
contextRequest:当前请求对象
serviceName:目标服务名
path:目标服务从 controller 往后的完整请求路径
params:请求参数集合
responseType:期望返回类型
返回:
类型:JsonObject 或在 responseType 参数中传入
示例:
Map<String, String> params = new HashMap<>();
JSONObject ret = ServiceUtil.delete(SpringWebUtil.getRequest(), "entry", "/uaa/userinfo", params);
String ret = ServiceUtil.delete(SpringWebUtil.getRequest(), "entry", "/uaa/userinfo", params, String.class);
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
delete(String url, Map<T>
responseType)<T>
responseType, ServiceRequestBuildCallback callback)
功能:开放式 delete 请求,可自定义 url、header 等,可调用外部 api
参数:
url:自定义请求路径
params:请求参数集合
headers:自定义请求头
responseType:期望返回类型
callback:构造回调,可以配置任意 httpclient 支持的参数。如果有统一设置的需求,可以项目上封装 api 使用。ServiceUtil 的所有方法都支持传 ServiceRequestBuildCallback,这些默认值都是平台经过实践测试比较好的配置,通用修改请谨慎,单个 api 没有关系
返回:
类型:JsonObject 或在 responseType 参数中传入
异常:
1.ServiceConnectionException 服务连接异常
2.ServiceResponseException 响应码>=300异常
示例:
Map<String, String> headerMap = new HashMap<>();
headerMap.put("content-type", "charset=UTF-8");
headerMap.put("Accept", "application/json");
Map<String, String> params = new HashMap<>();
respHeaderMap.put("userid", "123");
//请求回调设置
ServiceRequestBuildCallback serviceRequestBuildCallback=new ServiceRequestBuildCallback() {
public void doInServiceRequestBuild(HttpRequestBase request) {
RequestConfig.Builder custom = RequestConfig.custom();
// 超时60s
custom.setConnectionRequestTimeout(60000);
// 设置忽略set - cookie方案
custom.setCookieSpec(CookieSpecs.IGNORE_COOKIES);
RequestConfig requestConfig = custom.build();
request.setConfig(requestConfig);
}
};
JSONObject result1 = ServiceUtil.delete("http://entry", params, headerMap);
String result2 = ServiceUtil.put("http://entry", params, headerMap,String.class);
String result3 = ServiceUtil.put("http://entry", params, headerMap,String.class,serviceRequestBuildCallback);
getServiceUrl
getServiceUrl(String serviceName)
功能:通过服务名获取内网服务全路径
参数:
serviceName:服务名,如 entry,wf
返回:
类型:String
示例:
getServiceUrl("entry") 返回:http://localhost:10010/local_ide_router/entry.nd-tenant-lzsentry
getServiceName
getServiceName(String serviceName)
功能:通过服务名获取内网服务名
参数:
serviceName:服务名,如 entry,wf
返回:
类型:String
示例:
getServiceUrl("entry") 返回:entry.nd-tenant-lzsentry
getServiceHostName
getServiceHostName(String serviceName) getServiceHostName(String serviceName,String tenantCode)
功能:通过服务名获取内网全路径域名
参数:
serviceName:服务名,如 entry,wf
返回:
类型:String
示例:
getServiceHostName("entry") 返回:localhost:10010/local_ide_router/entry.nd-tenant-lzsentry
getServiceHostName("entry","lzsdev") 返回:localhost:10010/local_ide_router/entry.nd-tenant-lzsdev
getServiceDomainName
getServiceDomainName(String serviceName)
功能:通过服务名获取内网域名
参数:
serviceName:服务名,如 entry,wf
返回:
类型:String
示例:
getServiceDomainName("entry") 返回:entry.nd-tenant-lzsentry
getExtHeaders
getExtHeaders(HttpServletRequest contextRequest)
功能:获取当前请求的扩展头信息
说明:在发送请求中,需要自定义请求头时,可以将当前请求的头信息获取出来,还可增加自定义的头信息
参数:
contextRequest:当前请求对象
返回:
类型:Map<String, String>
示例:
JSONObject result=new JSONObject();
HttpServletRequest request = SpringWebUtil.getRequest();
result.put("getExtHeaders", ServiceUtil.getExtHeaders(request));
返回:{"X-FORWARDED-FOR":"192.168.0.76, 10.233.156.192","COOKIE":"_ga_QFWN0KYHTY=GS1.1.1705481716.3.1.1705481781.0.0.0; _ga=GA1.2.759021866.1705375856; request-use-base64=false; default=a8346291ba92f85ef4aafa70e30aae28","X-FORWARDED-HOST":"oauthttlzsentry8-lzsentry-ide.trunk2.xcaas.com","X-NGINX-PROXY":"true","X-FORWARDED-PORT":"8800","X-REAL-IP":"192.168.0.76","X-TENANT-KEY":"oauthttlzsentry8-ide","X-FORWARDED-PROTO":"http"}
getExtHeadersWithoutLoginContext
getExtHeadersWithoutLoginContext(HttpServletRequest contextRequest)
功能:获取当前请求的扩展头信息
说明:在发送请求中,需要自定义请求头时,可以将当前请求的头信息获取出来,不含登录上下文信息,还可增加自定义的头信息
参数:
contextRequest:当前请求对象
返回:
类型:Map<String, String>
示例:
JSONObject result=new JSONObject();
HttpServletRequest request = SpringWebUtil.getRequest();
result.put("getExtHeaders", ServiceUtil.getExtHeadersWithoutLoginContext(request));
返回:{"X-CREDENTIAL-USERNAME":"system","X-DEBUG-USERNAME":"lzsentry","X-DEBUG-SERVICE":"oauthtt","X-NGINX-PROXY":"true","X-REAL-IP":"10.233.140.37","X-FORWARDED-PROTO":"http","X-FORWARDED-FOR":"192.168.0.76, 192.168.10.121, 10.233.157.167, 10.233.140.37, 10.233.157.167","COOKIE":"_ga_QFWN0KYHTY=GS1.1.1705481716.3.1.1705481781.0.0.0; _ga=GA1.2.759021866.1705375856; user_session=eyJ1c2VybmFtZSI6InN5c3RlbSIsImhtYWMiOiJcdTAwMTRfcCNcdTAwMDHgXHUwMDFheOXGW1x1MDAxOFx1MDAxMsVcdTAwMWaaX0OCYSIsImV4cGlyZSI6MTcyMzc1ODA0MSwidG9rZW4iOiJjMzliNThmMS1lYzgwLTQ5NDEtYWQwOS1iZWYxZWMzMzFkMmEiLCJ1c2VyaWQiOiJzeXN0ZW0iLCJleHBpcmVzX2luIjozNDQ3NDcyODgyfQ%3D%3D","X-PERMISSION-ADMIN":"true","X-CREDENTIAL-USER-ID":"system","X-FORWARDED-HOST":"entrylzsentry8-vipcd4fa8d4.trunk2.xcaas.com","X-CRYPTO-CHECK-PARAM":"ignore","X-CREDENTIAL-ACCESS-TOKEN":"c39b58f1-ec80-4941-ad09-bef1ec331d2a","X-FORWARDED-PORT":"8800","X-DEBUG-PORTAL-INFO":"{\"oauthtt\":{\"host\":\"oauthttlzsentry8-lzsentry-ide.trunk2.xcaas.com\",\"username\":\"lzsentry\",\"isMain\":true,\"schema\":\"http\",\"port\":\"8800\"}}","X-TENANT-KEY":"oauthttlzsentry8-ide"}
getUserSession
getUserSession(HttpServletRequest contextRequest)
功能:获取当前请求的中 session 信息
参数:
contextRequest:当前请求对象
返回:
类型:Map<String, String>
示例:
JSONObject result=new JSONObject();
HttpServletRequest request = SpringWebUtil.getRequest();
result.put("getExtHeaders", ServiceUtil.getUserSession(request));
返回:eyJ1c2VybmFtZSI6InN5c3RlbSIsImhtYWMiOiJcdTAwMTRfcCNcdTAwMDHgXHUwMDFheOXGW1x1MDAxOFx1MDAxMsVcdTAwMWaaX0OCYSIsImV4cGlyZSI6MTcyMzc1ODA0MSwidG9rZW4iOiJjMzliNThmMS1lYzgwLTQ5NDEtYWQwOS1iZWYxZWMzMzFkMmEiLCJ1c2VyaWQiOiJzeXN0ZW0iLCJleHBpcmVzX2luIjozNDQ3NDcyODgyfQ%3D%3D