在用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;
- }
- });
httpclient3.1版本中get方法设置重定向更简单,找了半天才发现:
- getMethod.setFollowRedirects(false);
httpclient4.0版本中,使用get请求时,遇到302会自动跳转,如果需要得到302中location的信息,
可以用post方法去请求或者把get自动处理重定向禁掉。
要禁用get方法自动处理重定向,需要设一下参数:
- HttpClient httpclient = new DefaultHttpClient();
- HttpParams params = httpclient.getParams();
- params.setParameter(ClientPNames.HANDLE_REDIRECTS, false);
http://huangzhir.iteye.com/blog/1881791
http://blog.csdn.net/memray/article/details/7998388
相关推荐
它不仅能够处理基本的 GET 和 POST 请求,还支持各种高级特性,如重试策略、连接管理、多线程、Cookie 处理、URL 重定向等。 HttpClient 基本功能的使用 1. 环境准备:要使用 HttpClient,首先需要在项目中引入...
本文将通过一系列步骤和示例来帮助你入门HttpClient4.1。 ### 1. 环境准备 在开始使用HttpClient之前,你需要确保已经安装了Java环境,并在项目中引入HttpClient的依赖库。通常,你可以通过Maven或Gradle等构建工具...
HttpClient 简介 HttpClient 是 Apache Jakarta Common 项目下的一个子项目,专为 Java 开发者设计,提供了高效、强大且灵活的 HTTP 客户端编程接口。它旨在弥补 JDK 自带的 `java.net` 包在处理 HTTP 请求时功能的...
无论是简单的GET请求,还是复杂的POST操作,甚至是管理连接、处理重定向和认证,HttpClient都能提供全面的支持。在实际开发中,理解并熟练运用HttpClient 4.1.4的API,将极大地提升网络编程的效率和质量。
《Apache HttpClient 4.1详解》 Apache HttpClient是一款强大的HTTP客户端库,广泛应用于Java开发者之中,主要用于处理HTTP请求和响应。在"**httpcomponents-client-4.1-bin.zip**"这个压缩包中,包含了HttpClient ...
在本文中,我们将深入探讨HttpClient 4.1版本,了解其核心概念、使用方法以及如何在实际项目中有效地利用它进行网络通信。 HttpClient 4.1版本是在2011年发布,虽然已有一定的历史,但其稳定性和功能依然强大。此...
6. **示例代码**:"httpclient4.1_examples"压缩包中的示例代码展示了如何使用HTTPClient 4.1.1进行基本的HTTP操作,包括发送GET、POST请求,处理响应,以及设置请求头、处理重定向等。通过分析和运行这些示例,你...
默认情况下,HttpClient会自动处理重定向。但在某些情况下,我们可能不希望它这样做。本节将介绍如何禁用重定向。 **4.2 不跟随重定向** 为了不跟随重定向,可以使用`RedirectStrategy`的子类`LaxRedirectStrategy...
HttpClient支持各种HTTP方法如GET、POST、PUT等,还包含了处理重定向、Cookie管理、连接池管理、身份认证等多种功能。这个版本的更新可能包括了性能优化、bug修复以及对新HTTP标准的支持。在使用HttpClient时,...
该教程基于 HttpClient 4.1 版本,包括基础用法和 SSL 访问的简单示例。随着 HttpClient 更新至更高版本,例如 HttpClient 4.5.x 或更高,可能会有新的特性和改进。开发者应当关注最新版本的文档以获取更全面、最新...
- **1.1.1 HTTP请求**: 在客户端发起HTTP请求时,需要构造一个`HttpRequest`对象,它包含了请求方法(如GET、POST)、请求URL等信息。 - **1.1.2 HTTP响应**: 当服务器接收到请求后会返回一个`HttpResponse`对象,...
在HttpClient 4.4.1.jar中,包含了HttpClient的主要功能实现,如HTTP方法(GET, POST等)、连接管理、重定向处理、身份验证机制、Cookie管理以及各种HTTP协议头的设置。这个核心库让你可以方便地构建HTTP请求,并...
HttpClient可以根据URL计算出正确的路由。 - **安全HTTP连接**: 使用HTTPS时,还需要考虑TLS/SSL的安全配置。 **2.4 HTTP路由参数** - **路由参数**: 可以设置路由相关的参数,如代理设置等。 **2.5 套接字工厂**...
- 1.2.2 HttpClient资源释放:解释了HttpClient实例的生命周期管理,以及如何正确地关闭HttpClient资源。 1.3 HTTP执行上下文 - 说明了如何使用HTTP执行上下文来管理HTTP连接和请求执行过程中的状态。 1.4 HTTP...
- **实现**:HttpClient支持自动处理常见的HTTP重定向状态码(如301, 302等)。 #### 二、连接管理 ##### 2.1 连接持久化 - **定义**:保持连接在一定时间内不关闭,以便后续请求使用。 - **优势**:提高性能,...
1.7 重定向处理:解释HttpClient如何处理HTTP重定向响应。 2. 连接管理 2.1 连接持久化:介绍如何维持TCP连接的持久性。 2.2 HTTP连接路由:包括路由计算和安全HTTP连接的配置。 2.3 HTTP连接管理器:涵盖...