Module java.base
Package java.net

Class CookieHandler

java.lang.Object
java.net.CookieHandler
直接已知的子类:
CookieManager

public abstract class CookieHandler extends Object
CookieHandler对象提供了一个回调机制,用于将HTTP状态管理策略实现连接到HTTP协议处理程序中。HTTP状态管理机制指定了一种通过HTTP请求和响应创建有状态会话的方式。

可以通过执行CookieHandler.setDefault(CookieHandler)注册一个系统范围的CookieHandler,以供HTTP URL流协议处理程序使用。可以通过调用CookieHandler.getDefault()来检索当前注册的CookieHandler。有关HTTP状态管理的更多信息,请参见RFC 2965: HTTP状态管理机制

自Java版本:
1.5
外部规范
  • Constructor Details

    • CookieHandler

      public CookieHandler()
      子类调用的构造函数。
  • Method Details

    • getDefault

      public static CookieHandler getDefault()
      获取系统范围的cookie处理程序。
      返回:
      系统范围的cookie处理程序;返回null表示当前未设置系统范围的cookie处理程序。
      抛出:
      SecurityException - 如果已安装安全管理器并且拒绝NetPermission("getCookieHandler")
      参见:
    • setDefault

      public static void setDefault(CookieHandler cHandler)
      设置(或取消设置)系统范围的cookie处理程序。注意:非标准的http协议处理程序可能会忽略此设置。
      参数:
      cHandler - HTTP cookie处理程序,或null表示取消设置。
      抛出:
      SecurityException - 如果已安装安全管理器并且拒绝NetPermission("setCookieHandler")
      参见:
    • get

      public abstract Map<String,List<String>> get(URI uri, Map<String,List<String>> requestHeaders) throws IOException
      从请求头中的指定URI的cookie缓存中获取所有适用的cookie。

      作为参数传递的URI指定了cookie的预期用途。特别是,方案应反映出cookie是否将通过http、https发送,或者在javascript等其他上下文中使用。主机部分应反映出cookie的目的地或在javascript情况下的来源。

      实现应考虑URI和cookie属性以及安全设置,以确定应返回哪些cookie。

      HTTP协议实现者应确保在添加所有与选择cookie相关的请求头之后调用此方法,并在发送请求之前调用。

      参数:
      uri - 表示cookie预期用途的URI
      requestHeaders - 从请求头字段名称到当前请求头字段值列表的映射
      返回:
      一个不可变的状态管理头映射,字段名为"Cookie"或"Cookie2",对应包含状态信息的cookie列表
      抛出:
      IOException - 如果发生I/O错误
      IllegalArgumentException - 如果任一参数为null
      参见:
    • put

      public abstract void put(URI uri, Map<String,List<String>> responseHeaders) throws IOException
      将响应头中命名为Set-Cookie2的字段中的所有适用cookie设置到cookie缓存中。
      参数:
      uri - cookie来源的URI
      responseHeaders - 从字段名称到返回的响应头字段值列表的不可变映射
      抛出:
      IOException - 如果发生I/O错误
      IllegalArgumentException - 如果任一参数为null
      参见: