在实际应用中,向服务端获取数据,每次都需要登录,十分麻烦。希望登录一次后,在一定时间内不需要再次登录,就能直接访问服务了。
要实现该功能,也十分简单,首先需要服务端支持记住我的功能,客户端登录的时候选择记住我,这个时候服务端就会把记住我的信息存在cookie中返回给客户端,客户端后面登录的时候只需要带上这个cookie中的值,就可以直接免登录了
具体实现代码:
第一步,模拟登录请求,保存cookie
public static List<String> sendLogin(String url) {
List<String> list = new ArrayList<String>();
HttpGet request = new HttpGet(url);
try {
HttpResponse response = HttpClients.createDefault()
.execute(request);
if (response.getStatusLine().getStatusCode() == 200) {
String result = EntityUtils.toString(response.getEntity());
// 从响应消息中获取cookie中的rememberMe值,并保存到list中,供后面使用
Header[] hhh = response.getHeaders("Set-Cookie");
for (Header t : hhh) {
String v = t.getValue();
if (v.startsWith("rememberMe")) {
list.add(v);
}
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
return list;
}
第二步,使用返回的cookie值,发送直接请求
public static String getDate(String url, List<String> cookies) {
HttpGet request = new HttpGet(url);
try {
for (String cookie : cookies) {
request.addHeader("Cookie", cookie);
}
HttpResponse response = HttpClients.createDefault()
.execute(request);
if (response.getStatusLine().getStatusCode() == 200) {
String result = EntityUtils.toString(response.getEntity());
return result;
}
} catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
第一次获取的cookie值也可以保存在文件,下次直接使用cookie值进行请求,而不需要再次登录。
该功能对于服务端也有要求,对于第二次请求的url,在服务端设置对于记住我功能可以访问。
需要的jar包:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5</version>
</dependency>
分享到:
相关推荐
使用 HttpClient 绕过登录验证码可以实现免登录访问,但是需要注意 Cookie 的路径、域名和过期时间等信息,并选择合适的 Cookie 策略。同时,我们也需要注意.blackhat 的攻击,以保护用户的登录信息。
我们将涵盖SSL证书的生成、Tomcat服务器的SSL配置以及HttpClient的使用。” 【标签】:“httpclient4.1 https ssl” 【正文】: 在现代的互联网环境中,安全的通信协议是至关重要的。HTTPS(HTTP over SSL/TLS)...
本文将详细介绍如何使用`HttpClient`来调用Web API接口。 #### 二、HttpClient简介 `HttpClient`是一个被广泛使用的类,用于发起HTTP请求并接收响应。它在.NET框架中得到了很好的支持和封装。与其他语言如Java或...
最后,文档还演示了如何使用HttpClient访问HTTPS协议的站点,包括生成KeyStore以及配置Tomcat服务器支持SSL的方法,并指导用户如何通过浏览器和HttpClient访问经过SSL加密的应用。 整体而言,本教程深入浅出地介绍...
5. **使用代理**:在需要经过代理服务器访问互联网的环境中工作。 6. **进行认证**:对受保护的Web资源进行身份验证。 总的来说,Apache Commons HttpClient 3.1是Java开发者处理HTTP通信的强大工具,它提供了丰富...
【使用HttpClient实现免费的Google翻译API】 在Java开发中,有时候我们需要实现文本的翻译功能,但Google官方的翻译API是收费的。为了节省成本,我们可以利用HttpClient库来模拟用户访问Google翻译网页,然后通过...
在实际开发中,HttpClient可以与各种其他库结合使用,如JSON库解析响应数据,或者使用线程池来并行处理多个请求。HttpClient的Command Pattern设计使得它易于扩展和定制,以适应不同项目的需求。由于HttpClient遵循...
标题中的“飞信免费发送接口API的测试(HTTPClient实现)”是指使用HTTPClient库来测试飞信(Fetion)的免费短信发送功能。飞信是中国移动推出的一种即时通讯服务,它允许用户通过网络免费发送短信到中国移动的手机...
HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。 下载地址: http://hc.apache.org/downloads.cgi 1.2特性 1. 基于标准、纯净的java语言。...
### HttpClient学习笔记知识点详解 #### 一、HttpClient简介与特点 **HttpClient** 是 Apache Commons 库中的一个子项目,主要用于简化 Java 程序...对于 Java 开发者来说,掌握 HttpClient 的使用技巧是非常重要的。
当用户首次成功登录后,服务器会返回一个包含用户信息的cookie(或设置session),客户端保存该cookie并在下次访问时发送给服务器,从而实现免输入密码的快速登录。 2. **C#与Web编程** C#是一种广泛用于开发...
使用 Tornado 的 httpclient 的 CouchDB 的阻塞和非阻塞(异步)客户端 这个 Python 模块包装了 CouchDB HTTP REST API 并定义了一个通用接口,用于在 CouchDB 上进行阻塞和非阻塞操作。 安装 使用pip安装: pip ...
在.NET开发环境中,针对阿里巴巴平台实现免登陆接口是一项常见的需求,尤其对于自动化测试、数据抓取或者集成系统来说,能够避免频繁的人工登录操作,提高工作效率。本文将深入讲解如何在.NET框架下实现这一功能。 ...
QQ登录接口的整合是许多开发者在构建Web应用或桌面应用时需要实现的一项功能,尤其是在中国的互联网环境中,QQ作为一款广泛使用的社交工具,其登录接口能够为应用带来便捷的用户接入方式。本篇将详细讲解如何使用C# ...
Android实现https网络访问,...3、HttpClient方式实现,支持所有Https免验证方式链接(与2类似,只不过采用HttpClient方式实现)。4、HttpClient方式实现,支持验证指定证书(与1类似,只不过采用HttpClient方式实现)
在“Jsoup网络爬虫(动态ip代理,突破ip访问次数限制)爬取全国各省市区数据”这个项目中,我们将会深入探讨如何使用Jsoup进行网络爬虫开发,并且解决在爬虫过程中遇到的IP访问限制问题。 首先,我们需要理解Jsoup...
- 使用`HttpClient`可以方便地发送GET和POST请求,并处理响应。 3. **利用JSON数据进行服务器和客户端通信**: - JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 - 在实验中,...
这些页面可以免受SSO过滤器的限制,例如登录页面(`login.do`)、错误提示页(`error.jsp`)或登录表单(`login.jsp`)。 - **修改`web.xml`**:需要在`web.xml`中添加相应的过滤器配置,以便启动单点登录功能。具体配置...
在实际使用HtmlAgilityPack分析工具时,开发者通常会结合其他技术,如C#编程语言、HttpClient类来发送HTTP请求获取网页源码,再利用HtmlAgilityPack进行解析。此外,工具可能还提供了一些可视化或命令行界面,以简化...