合并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);
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值