HttpClient 4.1 post 继续访问 重定向,301,302 的url

个人专题目录


在用HttpClient 4.1,用get 的时,如果有重定向,会自动再去访问重定向的内容 。

但用post访问url就不会自动 重定向的内容 。

用post访问url是地,我们经常会遇到返回301,302 返回代码,他们代表的是重定向。有两种方法让程序继续访问,

1 利用heard 取Location值重新再访问,代码如下

if (response.getStatusLine().getStatusCode() == 302) {
    Header[] hs = response.getHeaders("Location");
    if (hs.length > 0) {
        return sendPost(client, hs[0].toString(), headers, params, encoding, cookie);
    }
}

2 HttpClient实例中增加重定向策略,代码如下

client.setRedirectHandler(new DefaultRedirectHandler() {
    @Override
    public boolean isRedirectRequested(HttpResponse response, HttpContext context) {
        boolean isRedirect = super.isRedirectRequested(response, context);
        if (!isRedirect) {
            int responseCode = response.getStatusLine().getStatusCode();
            if (responseCode == 301 || responseCode == 302) {
                return true;
            }
        }
        return isRedirect;
    }
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,948评论 18 139
  • 先看看wiki http状态码的解释。   301 Moved Permanently 被请求的资源已永久移动到新...
    杰哥长得帅阅读 8,746评论 0 1
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,551评论 1 92
  • 友聚奇石俱乐部,十月一号二号三号和五号六号七号连发两期,芦芽山、马仑草原、万年冰洞、石门悬棺,悬空村,悬崖栈道,汾...
    友聚户外阅读 395评论 0 0
  • 臭宝面对面坐着,听到我说:摇~~头~~就会用力晃动他的小脑袋,有时候幅度有点大,几乎要摔倒了。听到说:握~~手~~...
    礽哥儿阅读 158评论 0 0