apache 302重定向
public static HttpResponse RedirectUrl(String url) {try {HttpParams httpParameters = new BasicHttpParams(); // 设置连接管理器的超时 ConnManagerParams.setTimeout(httpParameters, 20000); // 设置连接超时 HttpConnectionParams.setConnectionTimeout(httpParameters, 20000); // 设置socket超时 HttpConnectionParams.setSoTimeout(httpParameters, 20000); //设置自定义重定向 HttpClientParams.setRedirecting(httpParameters, false); HttpClient hc = getHttpClient(httpParameters); HttpGet httpGet = new HttpGet(url); httpGet.setParams(httpParameters); HttpResponse response = hc.execute(httpGet); return response; } catch (IOException e) {e.printStackTrace(); }return null; }
private static int retry = 0; /** * 尝试获取referrer次数 */ public static int retryNum = 3; /** * 用重定向的方式去获取refer * 该方法用于判断最终的链接得出 * * @param context * @param tackUrl * @param id * @return */ public static String getRedirectUrl(Context context, String tackUrl, String id) {Trace.e("getRedirectUrl", "retry==" + retry); try {HttpResponse response = PackHttp.RedirectUrl(tackUrl); if (response == null) {retry++; getRedirectUrl(context, tackUrl, id); return ""; }int code = response.getStatusLine().getStatusCode(); if (code != HttpStatus.SC_OK) {Header[] hander = response.getHeaders("Location"); if (hander != null && hander.length > 0) {String redictUrl = hander[hander.length - 1].getValue();
//结束重定向条件 if (redictUrl.startsWith(String.valueOf(new char[]{'m', 'a', 'r', 'k', 'e', 't', ':',}))|| redictUrl.startsWith(Const.URL_REDIR_URL)) {updateRef(context, id, redictUrl); return ""; }//多次判定重定向 return getRedirectUrl(context, redictUrl, id); }} else if (code == HttpStatus.SC_OK) {String redictUrl = tackUrl; if (redictUrl.startsWith(String.valueOf(new char[]{'m', 'a', 'r', 'k', 'e', 't', ':',}))|| redictUrl.startsWith(Const.URL_REDIR_URL)) {updateRef(context, id, redictUrl); } else {//再次尝试获取 retry++; getRedirectUrl(context, redictUrl, id); }}} catch (Exception e) {e.printStackTrace(); retry++; getRedirectUrl(context, tackUrl, id); }return tackUrl; }
apache 302重定向相关推荐
- Chrome在302重定向的时候对原请求产生2次请求的问题说明
这个问题应该确确实实是一个Chrome的BUG,我在自己的编程环境中发现,并在多个服务器,多个编程语言的运行环境,以及多个浏览器下都测试过,都看到有2次请求出现.为了证明不是自己环境的问题,我也特意去 ...
- 301永久重定向实现方式及302重定向(侧重.htaccess)
在我们的网站建设中,时常会遇到需要网页重定向的情况:象网站调整,如改变网页目录结构,网页被移到一个新地址,再或者,网页扩展名改变,如因应用需要把.php改成.Html或.shtml,在这种情况下,如果 ...
- Shiro logout 302重定向,shiro 302解决方案
================================ ©Copyright 蕃薯耀 2022-04-09 蕃薯耀的博客_CSDN博客 一.问题描述 当登录退出为Ajax请求时,使用Shir ...
- Apache URL重定向指南
Apache URL重定向指南 2004-01-28 21:01:11 Engelschall 阅读 <script src="http://www.meetchinese.com/e ...
- 301和302重定向的区别,301和302重定向怎么实现
重定向很简单.如果你要将内容永久移动到新位置,请使用 301 重定向.如果你只是暂时移动它,请使用 302 重定向. 但你可能会想,这很重要吗?毕竟,用户无法察觉 301 和 302 的区别,两者在功 ...
- nginx中301和302重定向之间的区别
首先客户端浏览器的URL都会改变: 302重定向是暂时的重定向,搜索引擎会抓取新的内容而保留旧的地址.因为服务器返回302,所以搜索引擎会认为新的网址是暂时的: 301重定向是永久的重定向,搜索引擎会 ...
- uni-app——一种通过Nginx反向代理处理302重定向请求解决网络请求中无法获取Cookie的解决方案
问题描述 小程序中不会自动保存和发送Cookie 使用插件(https://uniapp.dcloud.io/api/request/request)方法不能解决302重定向情况下获取Cookie 小 ...
- scrapy 解决Redirecting 301 302重定向问题
在使用Scrapy框架中URl被重定向,总是遇到这类问题: DEBUG: Redirecting (301/302) to <GET https://XXXX refer https://XXX ...
- HTTP 302重定向的一个具体例子
网址:https://www.sslshopper.com/certificate-decoder.html 我们从IE浏览器里导出Certificate成.cer文件后, 用记事本打开,内容是这样的 ...
最新文章
- 能详细地讲讲stm32该怎么学吗?
- Attention!注意力机制模型最新综述(附下载)
- 第十一集VLAN原理和VTP协议理论讲解
- PTA数组作业一查找整数
- 集合的交集和函数的例题
- ESP8266在线视频网址
- php采集分页数据,如何通过php+wordpress实现分页获取数据
- debugging Auto Layout:Logical Errors
- Git自由之章 - 本地仓库的基本操作
- iphone android传照片大小,iPhone竟然可以传文件到安卓机?99%的人都不知道
- MySQL数据库入门:建库、建表、插入数据
- Scala下载和配置
- 解决Echarts官网无法访问的问题
- linux查看lammps版本,lammps linux
- HTCVIVE无线套装安装后unityvr项目无法在头盔中显示
- 【数学分析】集合 ① ( 集合概念 | 集合表示 | 常用的数集合 | 集合的表示 )
- vot-toolkit-python测试DiMP50在VOT2018上的表现
- 《作业疯了》超奇葩游戏挑战你的脑细胞
- 【FPGA】初探FPGA —— 入门书籍推荐
- html监听多选框事件,复选框事件监听使用求助