后端获取浏览器域名

在后端服务中拼接浏览器可访问的 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();
}

运行效果如下图所示

图 0

results matching ""

    No results matching ""