`
m635674608
  • 浏览: 5022054 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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

 
阅读更多

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

用post访问url是地,我们经常会遇到返回301,302 返回代码,他们代表的是重定向。有两种方法让程序继续访问, 
1 利用heard 取Location值重新再访问,代码如下 

Java代码  收藏代码
  1. if(response.getStatusLine().getStatusCode()==302){  
  2.      Header[] hs = response.getHeaders("Location");    
  3.            if(hs.length>0){    
  4.             return sendPost(client,  hs[0].toString(), headers, params, encoding, cookie);  
  5.            }    
  6. }  



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

Java代码  收藏代码
  1. client.setRedirectHandler(new DefaultRedirectHandler() {                  
  2.                     @Override  
  3.                     public boolean isRedirectRequested(HttpResponse response, HttpContext context) {  
  4.                         boolean isRedirect = super.isRedirectRequested(response, context);  
  5.                         if (!isRedirect) {  
  6.                             int responseCode = response.getStatusLine().getStatusCode();  
  7.                             if (responseCode == 301 || responseCode == 302) {  
  8.                                 return true;  
  9.                             }  
  10.                         }  
  11.                         return isRedirect;  
  12.                     }  
  13.                 });  

 

httpclient3.1版本中get方法设置重定向更简单,找了半天才发现:

 

[java] view plaincopy
 
  1. getMethod.setFollowRedirects(false);  


httpclient4.0版本中,使用get请求时,遇到302会自动跳转,如果需要得到302中location的信息,

 

可以用post方法去请求或者把get自动处理重定向禁掉。 

要禁用get方法自动处理重定向,需要设一下参数: 

[java] view plaincopy
 
  1. HttpClient httpclient = new DefaultHttpClient();    
  2. HttpParams params = httpclient.getParams();    
  3. params.setParameter(ClientPNames.HANDLE_REDIRECTS, false);    

 

 

 

http://huangzhir.iteye.com/blog/1881791

http://blog.csdn.net/memray/article/details/7998388

 

 

分享到:
评论

相关推荐

    httpClient4.1入门教程.

    它不仅能够处理基本的 GET 和 POST 请求,还支持各种高级特性,如重试策略、连接管理、多线程、Cookie 处理、URL 重定向等。 HttpClient 基本功能的使用 1. 环境准备:要使用 HttpClient,首先需要在项目中引入...

    httpClient4.1入门教程

    本文将通过一系列步骤和示例来帮助你入门HttpClient4.1。 ### 1. 环境准备 在开始使用HttpClient之前,你需要确保已经安装了Java环境,并在项目中引入HttpClient的依赖库。通常,你可以通过Maven或Gradle等构建工具...

    httpClient4.1入门教程.docx

    HttpClient 简介 HttpClient 是 Apache Jakarta Common 项目下的一个子项目,专为 Java 开发者设计,提供了高效、强大且灵活的 HTTP 客户端编程接口。它旨在弥补 JDK 自带的 `java.net` 包在处理 HTTP 请求时功能的...

    httpclient4.1.4 API

    无论是简单的GET请求,还是复杂的POST操作,甚至是管理连接、处理重定向和认证,HttpClient都能提供全面的支持。在实际开发中,理解并熟练运用HttpClient 4.1.4的API,将极大地提升网络编程的效率和质量。

    httpcomponents-client-4.1-bin.zip

    《Apache HttpClient 4.1详解》 Apache HttpClient是一款强大的HTTP客户端库,广泛应用于Java开发者之中,主要用于处理HTTP请求和响应。在"**httpcomponents-client-4.1-bin.zip**"这个压缩包中,包含了HttpClient ...

    httpclient

    在本文中,我们将深入探讨HttpClient 4.1版本,了解其核心概念、使用方法以及如何在实际项目中有效地利用它进行网络通信。 HttpClient 4.1版本是在2011年发布,虽然已有一定的历史,但其稳定性和功能依然强大。此...

    httpclient4.x官方范例

    6. **示例代码**:"httpclient4.1_examples"压缩包中的示例代码展示了如何使用HTTPClient 4.1.1进行基本的HTTP操作,包括发送GET、POST请求,处理响应,以及设置请求头、处理重定向等。通过分析和运行这些示例,你...

    HTTPClient

    默认情况下,HttpClient会自动处理重定向。但在某些情况下,我们可能不希望它这样做。本节将介绍如何禁用重定向。 **4.2 不跟随重定向** 为了不跟随重定向,可以使用`RedirectStrategy`的子类`LaxRedirectStrategy...

    最新官方资源httpclient-4.1.3.jar和httpcore-4.1.4.jar

    HttpClient支持各种HTTP方法如GET、POST、PUT等,还包含了处理重定向、Cookie管理、连接池管理、身份认证等多种功能。这个版本的更新可能包括了性能优化、bug修复以及对新HTTP标准的支持。在使用HttpClient时,...

    HttpClient使用教程

    该教程基于 HttpClient 4.1 版本,包括基础用法和 SSL 访问的简单示例。随着 HttpClient 更新至更高版本,例如 HttpClient 4.5.x 或更高,可能会有新的特性和改进。开发者应当关注最新版本的文档以获取更全面、最新...

    httpClient使用指南最新版

    - **1.1.1 HTTP请求**: 在客户端发起HTTP请求时,需要构造一个`HttpRequest`对象,它包含了请求方法(如GET、POST)、请求URL等信息。 - **1.1.2 HTTP响应**: 当服务器接收到请求后会返回一个`HttpResponse`对象,...

    httpClient4jar包

    在HttpClient 4.4.1.jar中,包含了HttpClient的主要功能实现,如HTTP方法(GET, POST等)、连接管理、重定向处理、身份验证机制、Cookie管理以及各种HTTP协议头的设置。这个核心库让你可以方便地构建HTTP请求,并...

    HttpClient 4.0中文教程

    HttpClient可以根据URL计算出正确的路由。 - **安全HTTP连接**: 使用HTTPS时,还需要考虑TLS/SSL的安全配置。 **2.4 HTTP路由参数** - **路由参数**: 可以设置路由相关的参数,如代理设置等。 **2.5 套接字工厂**...

    httpClient4.5.1教程

    - 1.2.2 HttpClient资源释放:解释了HttpClient实例的生命周期管理,以及如何正确地关闭HttpClient资源。 1.3 HTTP执行上下文 - 说明了如何使用HTTP执行上下文来管理HTTP连接和请求执行过程中的状态。 1.4 HTTP...

    httpclient 4.5 api文档

    - **实现**:HttpClient支持自动处理常见的HTTP重定向状态码(如301, 302等)。 #### 二、连接管理 ##### 2.1 连接持久化 - **定义**:保持连接在一定时间内不关闭,以便后续请求使用。 - **优势**:提高性能,...

    httpclient tutorial

    1.7 重定向处理:解释HttpClient如何处理HTTP重定向响应。 2. 连接管理 2.1 连接持久化:介绍如何维持TCP连接的持久性。 2.2 HTTP连接路由:包括路由计算和安全HTTP连接的配置。 2.3 HTTP连接管理器:涵盖...

Global site tag (gtag.js) - Google Analytics