合并URL重定向方案

方案一: 直接展示内容;
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.6</version>
    <scope>compile</scope>
</dependency>
 /**
     * eg:
     * http://localhost:8080/jump/urlRedirect?appId=1&abtestName=testab&defaultUrl=http%3A%2F%2Fm.ximalaya.com%2Fmarketing%2Factivity2%2F2103%2Fts-1561946950228
     *
     * @param abtestname
     * @return
     */
    @RequestMapping(value = "/urlGetHttpContent", method = {RequestMethod.POST, RequestMethod.GET})
    @ResponseBody
    public String urlGetHttpContent(Integer appId, String abtestname, String defaultUrl, HttpServletRequest request, HttpServletResponse httpServletResponse) {
        if (StringUtils.isEmpty(abtestname) || StringUtils.isEmpty(defaultUrl) || appId == null) {
            log.error("urlGetHttpContent params exist empty");
            return "";
        }

        String decodeDefaultUrl = "";
        try {
            decodeDefaultUrl = URLDecoder.decode(defaultUrl, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            log.error("decode urlGetHttpContent defaultUrl error,defaultUrl {}", defaultUrl);
        }
        //保存unit信息
        return getHttpContent(decodeDefaultUrl, request);
    }

    private String getHttpContent(String url, HttpServletRequest request) {
        if (url == null || url.equals("")) return "";
        CloseableHttpClient httpclient = HttpClientBuilder.create().disableRedirectHandling().build();
        HttpGet httpGet = new HttpGet(url);
//        httpGet.setHeader("User-Agent","MicroMessenger");
        httpGet.setHeader("User-Agent", request.getHeader("User-Agent"));
        try {
            CloseableHttpResponse response = httpclient.execute(httpGet);
            HttpEntity responseEntity = response.getEntity();
            return EntityUtils.toString(responseEntity);
        } catch (IOException e) {
            e.printStackTrace();
            return "error";
        }
    }

方案二:重定向

//这里设置cookie,用于下次请求;
//382686,100030,100034,382258,382262,382307,382310,382369,382375
Cookie cookie = new Cookie("x-abtest-bucketIds", "382686%2C100030%2C100034%2C382258%2C382262%2C382307%2C382310%2C382369%2C382375");
cookie.setMaxAge(Integer.MAX_VALUE);
cookie.setPath("/");
httpServletResponse.addCookie(cookie);

//保存unit信息
try {
    String jumpUrl = jumpService.getJumpUrl(request, abtestName, decodeDefaultUrl);
    httpServletResponse.sendRedirect(jumpUrl);
} catch (IOException e) {
    log.error("sendRedirect error,jumpUrl {}", decodeDefaultUrl);
}
发布了136 篇原创文章 · 获赞 65 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/jakeswang/article/details/95195922
今日推荐