HttpClient是一个客户端的HTTP通信实现库,目标是发送和接受HTTP请求。HTTPClient维护cookies,session的保持在客户端就是cookie的体现。HttpClinet的session的保持有两种方式,一种是将HttpClient实例保存于web应用的session中,再次请求时取出,因为httpclient会维持cookies。另一种是再次请求时,将上次请求获取的cookies带入请求中,此种方式无需将httpclient保存于session中。
NameValuePair[] param = { new NameValuePair("username",userId),
new NameValuePair("password",password) } ;
//第一种方式 httpclient保存于session,每次请求均为同一httpclient,httpclient维持cookies
//HttpClient client =(HttpClient) request.getSession().getAttribute("HTTPCLIENT");
//第二种方式 每次请求带入之前请求获取的cookies。
HttpClient client=new HttpClient();
client.getState().addCookies(cookies);
PostMethod post=new PostMethod(url);
client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
post.setRequestBody(param);
client.executeMethod(post);
Cookie[] cookies=client.getState().getCookies();
post.releaseConnection();
分享到:
相关推荐
7. **执行其他需要保持SESSION状态的请求**:现在,当我们创建新的`HttpGet`或`HttpPost`请求时,HttpClient会自动处理Cookie,保持SESSION状态。 ```java HttpGet otherRequest = new HttpGet(...
本文将详细讲解如何使用HTTPClient来保持session会话,从而实现模拟登录后的其他操作。 首先,理解session的概念至关重要。Session是服务器端用来跟踪用户状态的一种机制。在Web应用中,当用户登录后,服务器会为该...
在Java编程中,后台请求HTTP并保持Session是一个常见的任务,特别是在需要访问受保护的Web资源时,例如登录后的网页数据。下面将详细讲解这个过程,包括GET和POST方法的使用,以及Session管理。 首先,我们需要了解...
Java 编写的使用HttpClient发送http请求工具类(解决了session无法保留问题)
上述代码展示了HttpClient的基本结构,包括构造函数、GET和POST方法,以及私有的发送请求方法。`buildUrl`函数用于构建带参数的URL,`sendRequest`则利用cURL库发送HTTP请求,并返回响应的HTTP状态码和响应体。 ...
HttpClient会自动管理这些Cookie,只要保持HttpClient实例不被销毁,就可以在后续请求中继续使用。 8. **注意点** - 尽管HttpClient在新版本的Android中被弃用,但仍然可以在旧版设备上使用。为了兼容性和性能考虑...
它可能会包含创建`HttpClient`、构建请求、解析响应等功能,简化了代码的复用和维护。 总之,`httpclient`库提供了一种高效且灵活的方式来模拟用户登录并携带cookie访问其他网页,这对于自动化测试、数据抓取或需要...
7. **异步处理**:为了支持非阻塞的网络I/O,HttpClient可能提供异步版本的请求方法,如`asyncGet()`和`asyncPost()`,这些方法通常会采用回调函数或future/promise的方式来处理结果。 在实际应用中,HttpClient...
在Web应用中,Session是一种常见的用户跟踪机制,用于在多个HTTP请求之间保持状态。HttpClient 4.5支持自动维护Session,这意味着开发者无需手动管理Cookie或其他会话标识,库会自动处理这些细节。这简化了代码,...
在Android开发中,当使用HttpURLConnection与Web服务器进行通信时,常常遇到的一个问题是无法正确保持session,导致每次请求都被服务器视为新的独立会话。这主要由于HTTP协议本身的无状态特性,以及Android客户端与...
HttpClient提供了许多高级特性,如Cookie管理、Redirect处理、重试策略、请求和响应拦截器等。开发者可以根据具体需求进行定制,以满足复杂的应用场景。 总之,HttpClient 4.5是一个功能强大且灵活的HTTP客户端库,...
在"java httpclient 模拟登录"这个场景下,我们通常会用到HttpClient来模拟用户登录网站的过程,获取登录后的session信息,以便后续能够访问登录后才能看到的页面内容。以下将详细介绍如何使用Java HttpClient进行...
注意,实际登录过程中,你可能需要处理更复杂的逻辑,比如验证码、登录状态保持(通过Cookie或Session)、重定向等。在网易相册的案例中,可能还需要分析登录页面的HTML来获取隐藏字段或者动态生成的令牌。此外,...
HttpClient提供了丰富的接口和策略类,使得这些操作变得相对简单。 通过阅读和理解HttpClient的源码,开发者可以更好地了解其内部机制,从而优化性能、处理异常、实现自定义功能。同时,HttpClient与其他工具如...
添加必要的请求头,例如`Content-type`定义数据类型为JSON,`Connection`设置关闭连接,以及自定义的`SessionId`和`appid`字段。 6. 构建消息实体: ```java StringEntity entity = new StringEntity(jsonObj....
使用Apache HttpClient库可以更方便地处理session共享,因为它提供了更强大的功能和更好的API,但基本原理相同:保存和发送Cookie以保持会话状态。如果你的项目已经包含了HttpClient库,可以考虑使用它来替代...
在模拟登录过程中,通常需要设置POST请求,填充登录表单数据,如用户名、密码,并可能需要处理登录后的Session和Cookie来保持会话状态。 首先,我们需要引入HttpClient4的相关依赖到项目中。如果是Maven项目,可以...
- **保存Session**:成功登录后,获取服务器返回的Session ID或其他认证信息,以便在后续请求中保持会话状态。 - **再次请求**:使用保存的Session信息构造新的请求,模拟已登录状态访问其他页面。 3. **淘宝和...