后端获取浏览器域名
在后端服务中拼接浏览器可访问的 URL,提供给第三方使用。使用 com.justep.util.net.RequestUtil 工具类中的 buildRequestUrl 方法获取外部域名访问地址
方法说明
com.justep.util.net.ServiceUtil 工具类中的 getServiceUrl(String serviceName) 方法,用于通过服务名获取内网服务全路径,这个路径只是内部请求的路径,不能作为外部地址访问,即不能通过浏览器直接访问
com.justep.util.net.RequestUtil 工具类中的 buildRequestUrl(HttpServlet request,String serviceName,String path) 方法,用于获取浏览器中的域名,可作为外部地址访问,方法定义如下
方法
String buildRequestUrl(HttpServlet request,String serviceName,String path)
参数
String serviceName:服务名
String path:访问路径
返回值
浏览器中的域名
- 获取当前浏览器的域名,代码如下
public String getDomain() throws Exception {
String domain = RequestUtil.buildRequestUrl(SpringWebUtil.getRequest(),null,"");
return domain;
}
返回值:https://entryjs024-vip.f.xcaas.net
- 获取完整路径,代码如下
public String getDomain() throws Exception {
String domain = RequestUtil.buildRequestUrl(SpringWebUtil.getRequest(),"oa","/main/geturl");
return domain;
}
返回值:https://entryjs024-vip.f.xcaas.net/oa/main/geturl
案例
public String domain() throws Exception {
JSONObject result=new JSONObject();
String path="/main/dbrest/orderm?pk=fid";
String serviceName="react";
String intranet=ServiceUtil.getServiceUrl(serviceName);//获取包含服务名的内部请求域名信息
result.put("ServiceUtilNoPath", intranet);//http://localhost:10012
result.put("ServiceUtilByPath", intranet+path);//http://localhost:10012/main/dbrest/orderm?pk=fid
String domain = RequestUtil.buildRequestUrl(SpringWebUtil.getRequest(),null,"");//只获取域名信息
result.put("RequestUtilNoServiceNoPath", domain);//http://reactdevguide8-lzsdev-ide.trunk2.xcaas.com:8800
String serviceDomain = RequestUtil.buildRequestUrl(SpringWebUtil.getRequest(),serviceName,"");//只获取包含服务名的外部地址
result.put("RequestUtilNoPath", serviceDomain); //http://reactdevguide8-lzsdev-ide.trunk2.xcaas.com:8800/react
String domainByPath = RequestUtil.buildRequestUrl(SpringWebUtil.getRequest(),serviceName,path); //获取包含服务名及详细path外部地址
result.put("RequestUtilByPath", domainByPath);//http://reactdevguide8-lzsdev-ide.trunk2.xcaas.com:8800/react/main/dbrest/orderm?pk=fid
return result.toJSONString();
}
运行效果如下图所示