Java 日看一类(66)之IO包中的CookieHandler

爬虫_011_cookie登录&handler处理器 在需要进入个人信息页面时,服务器会跳转到登录页面,登录页面的编码不是utf-8,个人信息页面是utf-8,故在爬取个人信息页面的数据时,会报错编码错误,此时我们就需要cookie登录了。【在请求头中最好留下refere】二、handler处理器【更高级的请求头】-- 处理动态cookie和代理ip不能进行请求定制。refere是防盗链,判断当前页面是不是由上一个路径跳转。2.通过handler对象获取opener对象。1.获得handler对象。3.调用open方法。4.获取百度首页源码。 阅读详情

该类无继承类

引入了如下包

import java.util.Map;
import java.util.List;
import java.io.IOException;
import sun.security.util.SecurityConstants;



该类的类头注释如下:

/**
 * A CookieHandler object provides a callback mechanism to hook up a
 * HTTP state management policy implementation into the HTTP protocol
 * handler. The HTTP state management mechanism specifies a way to
 * create a stateful session with HTTP requests and responses.
 *
 * <p>A system-wide CookieHandler that to used by the HTTP protocol
 * handler can be registered by doing a
 * CookieHandler.setDefault(CookieHandler). The currently registered
 * CookieHandler can be retrieved by calling
 * CookieHandler.getDefault().
 *
 * For more information on HTTP state management, see <a
 * href="http://www.ietf.org/rfc/rfc2965.txt"><i>RFC&nbsp;2965: HTTP
 * State Management Mechanism</i></a>
 *
 * @author Yingxian Wang
 * @since 1.5
 */

大意如下:

CookieHandler对象会提供一个回调途径来绑定http状态管理策略到http协议处理程序上

http状态管理通过http请求和响应来指定创建含状态的回话方法

被http协议使用的系统级CookieHandler可以通过CookieHandler.setDefault(CookieHandler)方法注册

当前被注册的CookieHandler可以通过CookieHandler.getDefault方法返回

对于更多的http状态管理信息,请去看RFC2965


该类含有如下的成员变量:

系统级的CookieHandler(可以申请请求头部,并且管理响应的cookie)

private static CookieHandler cookieHandler;


该类含有如下的成员方法:

获得系统级CookieHandler

public synchronized static CookieHandler getDefault() {
    SecurityManager sm = System.getSecurityManager();//安全性检查
    if (sm != null) {
        sm.checkPermission(SecurityConstants.GET_COOKIEHANDLER_PERMISSION);
    }
    return cookieHandler;//获得当前状态管理器
}

注册成为系统级CookieHandler(null的话可以清空,也就是取消注册

public synchronized static void setDefault(CookieHandler cHandler) {
    SecurityManager sm = System.getSecurityManager();//安全性检查
    if (sm != null) {
        sm.checkPermission(SecurityConstants.SET_COOKIEHANDLER_PERMISSION);
    }
    cookieHandler = cHandler;//绑定到当前的状态管理器上
}

从请求头中指定 uri 的 cookie 缓存中获取所有可用的 cookie。 HTTP 协议实现程序应该确保在添加所有与选择 cookie 相关的请求头之后且在发送请求之前调用此方法。

public abstract Map<String, List<String>>
    get(URI uri, Map<String, List<String>> requestHeaders)
    throws IOException;

向响应头中出现的所有可用cookie加入到cookie缓存中

public abstract void
    put(URI uri, Map<String, List<String>> responseHeaders)
    throws IOException;



这里所谓系统级就是作为静态对象的存在,只能存在一个,每次外部的操作也仅能对该静态对象进行操作。虽然没有看到和该类的对应结合类,但大胆的推测下应该大部分都是对这个静态对象进行操作,同时向系统底层提供的操作接口也应该是这个静态对象。

由于http本质上是一种无状态链接,对于需要状态响应的部分功能就需要使用cookie(以及session)来完成,这里的cookie就是链接状态的信息载体(一般存在于客户端),在请求时会把自己本身的状态信息发送到服务器端,接收响应时也会接受服务器端新设置的cookie(服务器标志该客户的状态)。

66. 标准IO - flush/fseek/无缓存/rewind 由于fflush的作用,该代码有输出。flush到内核,由内核调用write函数输出 stdout是行缓存,无输出 需要调用fflush清空库缓存,才可输出 stderr 无缓存,可直接输出 阅读详情

相关推荐

Claude Code Router 401错误修复

claude code router配置相关环境变量问题

如沐春风 6364

使用CookieHandler管理Cookie数据

前言 : 因为只学过J2SE部分,对JAVA网络编程也不甚了解,所以学习在JAVA操作HTTP协议时碰到很多问题.翻译这篇文章只是为了加深理解,如有不当,还望指出. 原文地址: http://java.sun.com/developer/JDCTechTips/2005/tt0913.html        在JAVA平台,访问URL资源是通过一系列协议处理器(protocol hand...

JavaSxy的专栏 1761

微信小程序反编译实战:用wxappUnpacker获取他人源码的完整流程(附常见报错解决方案)

本文详细解析了微信小程序反编译的完整流程,从缓存提取到源码重构,使用wxappUnpacker工具链实现逆向工程。涵盖环境配置、解密反编译、项目调试等关键步骤,并提供了常见报错解决方案,帮助开发者学习优秀实现方案或进行安全审计。

weixin_42706667的博客 469

android-CookieHandler、CookieManager

参考:Android中Cookie的使用通常来说,Http 请求 或者 返回,两两之间应该是相互独立的。然而,状态管理机制(the state management mechanism),可以使 客户端(clients) 和 服务器(servers)可以通过把这些信息放进一个上下文变量中来实现状态信息的交换,这种方式被称作 Session.这些被用来创建 和维护session的状态信息被称作 coo

火星男孩的分享空间 5738

接口调试必看:status显示canceled的3种常见原因及修复方法

本文深度解析了接口调试中status显示canceled的三种核心原因:网络层中断(如请求超时)、应用层逻辑主动取消(如请求竞态、组件卸载)以及用户交互与浏览器行为。文章提供了从诊断到修复的系统性方案,包括分析Network Timing、使用Axios CancelToken、优化请求策略与性能,帮助开发者从根本上解决这一常见问题。

bb456的博客 937

全志T133-s3(Tina Linux)下RTL8723DS WiFi驱动移植与调试实战

本文详细介绍了在全志T133-s3平台(Tina Linux)上移植RTL8723DS WiFi驱动的完整流程,包括硬件连接、驱动源码获取、内核配置、系统适配、设备树配置以及常见问题排查。通过实战案例,帮助开发者快速解决SDIO接口通信、固件加载、电源管理等关键问题,实现稳定的WiFi功能。

weixin_30505225的博客 507

java cookie类_Java 的 Cookie 处理类详解

import java.io.IOException;import java.net.CookieHandler;import java.net.URI;import java.net.URL;import java.net.URLConnection;import java.text.DateFormat;import java.text.ParseException;import java.t...

weixin_28811757的博客 341

esp32c6 开发实战:低功耗蓝牙(BLE)开发

蓝牙栈在此程序流程中已经启动并运行,但是应用程序的功能尚未定义。功能的定义是通过响应事件来实现的,当其他设备尝试读取或写入参数以及建立连接时就会触发事件回调函数处理。BT控制器在控制器端实现主机控制器接口(HCI),链路层(LL)和物理层(PHY)。BT控制器对用户应用程序不可见,并处理BLE堆栈的较低层。蓝牙堆栈(Bluedroid stack)定义了经典蓝牙(BT Classic)和低功耗蓝牙(BLE)的通用定义和API。的判断)等对于启动低功耗蓝牙来说不重要的代码,函数初始化和启用BT控制器。

月入鱼饵的博客 2742

Java的CookieManager

Java5包括一个抽象类Java.net.CookieHandler,它定义了存储和获取Cookie的一个API,但不包括这个抽象类的实现,所以还有很多工作要做。Java6进一步作了补充,为CookieManager增加了一个可以使用的具体子类java.net.CookieManager。不过默认情况下Cookie并不打开。在Java存储和返回Cookie之前,需要先启动cookie。

qq_43456605的博客 2759

B站评论情感分析实战:Python批量爬取+BERT正负向分类,精准度92%(附完整代码)

用技术手段自动化挖掘用户真实情感,比人工分析更高效、更客观。这套方案的精度能稳定在90%左右,完全满足实际应用需求。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1028

Qt应用软件【协议篇】自定义协议处理串口半包贴包

Qt串口数据,半包,贴包,丢包数据处理

小鱼酱的博客 1215

JavaWeb之Cookie详解(一)

Cookie的创建与数据提取

Zhangjiangyan711的博客 8345

2026年CSP-J初赛真题及答案解析

2026年CSP-J初赛真题及题解

王老师青少年编程 1646

教你认清HttpURLConnection里面的CookieManager,CookieStore,CookieHandler,HttpCookie,CookiePolicy

教你认清HttpURLConnection的CookieManager,CookieStore,CookieHandler,HttpCookie,CookiePolicy之间的区别

HoHohong的博客 1927

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java8 handler_CookieHandler 回调机制

# CookieHandler 回调机制HTTP 状态管理是通过 Java .net. cookiehandler 类在 Java SE 中实现的。CookieHandler 对象提供回调机制,以在 HTTP 协议处理程序中提供 HTTP 状态管理策略实现。也就是说,使用 HTTP 作为协议的 URL,例如 new URL(“http://example.com”),将使用 HTTP 协议处理程序...

weixin_42365141的博客 234

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

使用CookieHandler和cookieManager在httpUrlConnection中自动处理cookie保持Session信息

CookieHandler在大多数情况下会自动处理您的cookie。要仅维护从一个请求到下一个请求的cookie(例如维护服务器会话),那么此代码行就足够了: CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL)); 确保在第一次向UrlConnection发出请求之前运行一次。 现在,零cookie管理,并且从请求到请求的所有服务器会话数据都得到了完美维护。 ...

allway2的博客 766

网络——Cookie的使用

一、什么是Cookie ①、Cookie的作用:Cookie是服务端给客户端颁发的通行证,服务端通过Cookie来确认客户端的身份。这样当客户端操作时候,服务端知道具体修改哪个客户的数据。而不需要每次客户端在修改数据的时候,都要输入一遍,账号密码来认证自己。 ②、Cookie的传输: Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response

chen19960724的博客 942

干货,满满的干货——OkHttp3之Cookies管理及持久化

感谢原址:file:///C:/Users/Administrator/Desktop/cookie/OkHttp3之Cookies管理及持久化%20-%20Akioss%20Share%20-%20SegmentFault.html Cookies管理 OkHttp的源码过于复杂,感兴趣的同学可以自行阅读,这里只针对HttpEngineer类进行分析,从字面意思即可看出这个类

yangyang的博客 1万+

Android中Cookie的使用

Working With Cookies或许你早已经了解过cookies,但是或许你还不知道怎样在Java应用程序中利用cookies的优势.这篇文章可以引导你深入理解cookies,并且告诉你怎样设置一个cookie handler来使 HTTP URL 网络连接使用到这些cookie.Java SE 提供了一个主要的类来实现这一功能,java.net.CookieHandler还有一些其他的辅助

初心 1万+

HttpURLConnection与 CookieManager 实现Post提交请求和Cookie管理

下面是我的疑问,为什么直接注入cookie 不可以?

抛砖引玉 5万+

CookiesPool(weibo)的下载及配置

一.引导可扩展的Cookies池,目前对接了新浪微博,m.weibo.cn,可自行扩展其他站点使用 Cookie池,定期的检查Cookie是否失效,可以将多个账号登录之后的Cookie保存在池子中,在爬取网站时,可以随机获取一个账号的登录Cookie,实现多账号爬取的功能。二.下载及相关配置可参考文档:https://github.com/Python3WebSpider/CookiesPool下...

qq_38661599的博客 1413

OkHttp与Cookie及Cookie的持久化

一、OkHttp3下的Cookie的使用 ①、OkHttpClient取消了setCookieHandler(CookieHandler cookieHandler); 改而使用: setCookieJar(CookieJar cookieJar); CookieJar是一个接口,需要自己实现CookieJar的定义。 CookieJar cookieJar = new Cookie

chen19960724的博客 2万+

Android OkHttp的Cookie自动化管理

Android中在使用OkHttp这个库的时候,有时候需要持久化Cookie,那么怎么实现呢。OkHttp的内部源码过于复杂,不进行深究,这里只看其中的HttpEngineer里面的部分源码,在发起请求以及请求结束都会调用这个类的几个方法。我们先看networkRequest方法,在里面通过client.getCookieHandler()函数获得了CookieHandler对象,通过该对象拿到co

区长的专栏 2万+
上一篇: Java 日看一类(65)之net包中的ContentHandlerFactory接口与ContentHandler类
下一篇: Java 日看一类(67)之net包中的CookiePolicy接口
wyf95278
博客等级 码龄10年 38粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值