-
httpClient与服务器建立连接时cookie传递问题5
httpClient与服务器建立连接时cookie传递问题,使用httpGet或httpPost方式怎么传cookie给服务器?2012年11月26日 16:17
1个答案 按时间排序 按投票排序
-
采纳的答案
送你个demo
package http.demo; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.cookie.*; import org.apache.commons.httpclient.methods.*; /** * 用来演示登录表单的示例 * @author Liudong */ public class FormLoginDemo { static final String LOGON_SITE = "localhost" ; static final int LOGON_PORT = 8080; public static void main(String[] args) throws Exception{ HttpClient client = new HttpClient(); client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT); // 模拟登录页面 login.jsp->main.jsp PostMethod post = new PostMethod( "/main.jsp" ); NameValuePair name = new NameValuePair( "name" , "ld" ); NameValuePair pass = new NameValuePair( "password" , "ld" ); post.setRequestBody( new NameValuePair[]{name,pass}); int status = client.executeMethod(post); System.out.println(post.getResponseBodyAsString()); post.releaseConnection(); // 查看 cookie 信息 CookieSpec cookiespec = CookiePolicy.getDefaultSpec(); Cookie[] cookies = cookiespec.match(LOGON_SITE, LOGON_PORT, "/" , false , client.getState().getCookies()); if (cookies.length == 0) { System.out.println( "None" ); } else { for ( int i = 0; i < cookies.length; i++) { System.out.println(cookies[i].toString()); } } // 访问所需的页面 main2.jsp GetMethodget=newGetMethod("/main2.jsp"); client.executeMethod(get); System.out.println(get.getResponseBodyAsString()); get.releaseConnection(); } }
2012年11月26日 16:27
相关推荐
`HttpClient`会自动将cookie添加到请求头中,这样服务器就能识别出已登录的用户。 7. **处理结果**:执行`HttpGet`请求后,再次获取`HttpResponse`,处理返回的数据。你可以读取响应体,进行HTML解析或者其他业务...
HttpClient3.1 是一个由Apache Jakarta Commons开发的Java库,用于简化HTTP客户端与服务器之间的通信。这个库在处理复杂的HTTP请求、响应以及管理Cookie、文件上传等任务时提供了强大的功能,使得开发者能够更加便捷...
- **确保低级别资源释放**: 在使用HttpClient时,开发者需要注意释放资源,避免内存泄漏等问题。例如,关闭HttpResponse对象是非常重要的。 - **消耗实体内容**: 当收到响应时,必须显式地消耗实体内容,否则可能...
连接池允许复用已建立的TCP连接,减少了每次请求时的连接创建时间,提高了整体性能。HttpClient提供了`PoolingHttpClientConnectionManager`类来管理这些连接,可以设置最大连接数、每个路由的最大连接数以及连接...
**2.1 连接持久性:** 在HTTP/1.1中,客户端与服务器之间建立的连接默认是持久的,这意味着在一个连接上可以发送多个请求而无需频繁地建立和关闭连接。 **2.2 HTTP连接路由** - **路由计算:** 根据请求的目标地址...
4. **Cookie 管理**:HttpClient 内置了 Cookie 管理器,可以自动处理服务器返回的 Cookie,并在后续请求中发送。 5. **自定义编码解码**:HttpClient 允许用户自定义请求和响应的编码解码过程,以适应不同的数据...
- **2.7.2 与连接管理器集成**: 通过设置工厂,可以确保所有的连接都是安全的。 - **2.7.3 SSL/TLS定制**: 可以配置SSL/TLS协议的各种参数。 - **2.7.4 主机名验证**: 验证服务器证书中的主机名是否匹配实际请求的...
- **自动异常恢复**:介绍如何在遇到网络或服务器故障时自动恢复HTTP连接。 - **请求重试处理器**:提供了如何实现请求重试机制的具体指导。 ##### 1.4 中断请求 - 解释了如何在请求过程中中断HTTP请求,这对于长...
为了建立安全的连接,HttpClient支持使用SSL/TLS协议。 **2.7.2 与连接管理器集成** 套接字工厂可以与连接管理器集成,以便统一管理和配置所有连接。 **2.7.3 SSL/TLS定制** 可以根据需要对SSL/TLS协议进行定制,...
4. **Cookie管理**:如果需要处理服务器返回的Cookie,HttpClient提供了`CookieStore`接口和相关类来管理Cookie。 5. **HTTP连接管理**:通过`HttpConnectionParams`和`HttpConnectionManager`,可以控制连接的超时...
特别是在使用 HttpClient 发起网络请求时,保持客户端与服务器端 Session 的一致性是非常重要的。此外,在 WebView 中进行 Cookie 的同步也是实现持久化登录等场景的关键技术之一。 #### 一、HttpClient 请求中的 ...
它不仅能够处理基本的 GET 和 POST 请求,还支持各种高级特性,如重试策略、连接管理、多线程、Cookie 处理、URL 重定向等。 HttpClient 基本功能的使用 1. 环境准备:要使用 HttpClient,首先需要在项目中引入...
登录成功后,服务器通常会返回一个Set-Cookie响应头,其中包含了session ID。我们需要保存这个session ID,因为它是后续访问登录后页面的关键。可以这样获取: ```java Header[] cookies = response.getHeaders(...
- **定义**:用于在客户端和服务器之间传递状态信息的小型文本文件。 - **作用**:实现会话跟踪等功能。 ##### 3.2 Cookie规范 - **定义**:定义了Cookie的工作原理和规则。 - **示例**:RFC 6265标准。 ##### 3.3...
4. **错误处理与异常**:HttpClient库需要提供良好的错误处理机制,当WinInet API调用失败时,能够返回适当的错误代码或抛出异常,以便开发者能捕获并处理问题。 5. **会话管理**:为了提高性能和安全性,...
10. **异常处理**:在进行网络操作时,可能会遇到各种异常,如网络连接问题、超时等。需要适当地捕获和处理这些异常,如`IOException`、`HttpException`等。 通过以上步骤,开发者可以使用HTTPClient工具类高效地...
- **连接池管理**:合理使用HttpClient的连接池,避免过多的并发请求导致IP被封禁。 - **编码问题**:处理好字符编码,确保数据正确解析和显示。 - **同步与异步**:根据需求选择同步或异步请求,提高爬虫效率。 ...
- HttpClient通过`HttpConnectionManager`接口来管理HTTP连接,常见的实现如`PoolingHttpClientConnectionManager`,它支持连接池,可以复用已建立的连接,提高性能。 - `CloseableHttpClient`是HttpClient的主要...
这个版本的HttpClient提供了丰富的API,可以创建和配置HTTP连接,设置请求头,管理Cookie,进行POST请求,处理重定向,甚至支持HTTPS安全连接。例如,`HttpClient`类是整个库的入口点,`GetMethod`和`PostMethod`...
**SSL/TLS支持**:对于HTTPS通信,HTTPClient可以配置`SSLContext`和`X509TrustManager`来处理证书和信任问题,以便安全地与HTTPS服务器通信。 总的来说,HTTPClient库是Java开发者进行HTTP通信的强大工具,它提供...