最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Apache HttpClient中循环重定向的bug详解
时间:2022-06-25 00:15:31 编辑:袖梨 来源:一聚教程网
在Apache HttpClient 4.0里有个循环重定向的bug,当服务器试图正常的从域名A跳转到B的时候就会发生(我是在 111com.net 跳 www.111com.net 的时候发现的),换过最新版也发现还是有这个问题。
跟踪了DefaultRequestDirector.java之后发现,它在内部创建了一个HttpRedirect对象来处理重定向,这个对象会重用你之前的HttpGet对象里的HTTP 头,导致这个bug的根源在于,连Host头也用了,这表示重定向到的新域名如果和老域名如果是同一组集群,那么服务器会试图重新发一个重定向请求,这样就造成了HttpClient抛出CircularRedirectException。
我是派生了DefaultRequestDirector类来改掉这个问题,代码:
| 代码如下 | 复制代码 |
|
public class RedirectRequestDirector extends DefaultRequestDirector } } |
|
这里修改了Host头为试图重定向的主机名。
还需要修改 DefaultHttpClient:
| 代码如下 | 复制代码 |
|
public class RedirectHttpClient extends DefaultHttpClient |
|
现在就能正常处理跳转了。
相关文章
- 塞尔达无双封印战记刷钱点位推荐 塞尔达无双封印战记在哪刷钱 12-08
- 塞尔达无双封印战记全材料效果一览 塞尔达无双封印战记材料海鲜篇 12-08
- 超自然行动组蛤蟆怎么打 怪物蛤蟆捕捉方法 12-08
- 逃离鸭科夫uphone手机怎么获得 uphone手机获取方法详情 12-08
- 塞尔达无双封印战记全材料效果一览 塞尔达无双封印战记全材料动物篇 12-08
- 超自然行动组大熊怎么打 怪物大熊捕捉方法 12-08