CookieStore 是 Java API 中用来处理 HTTP 客户端的 Cookie 存储策略的类。psd素材

1. [代码]WebClient.java     
01import java.io.BufferedReader;
02import java.io.InputStream;
03import java.io.InputStreamReader;
04import java.net.CookieHandler;
05import java.net.CookieManager;
06import java.net.CookiePolicy;
07import java.net.CookieStore;
08import java.net.HttpCookie;
09import java.net.URI;
10import java.net.URL;
11import java.net.URLConnection;
12import java.util.ArrayList;
13import java.util.Collection;
14import java.util.HashMap;
15import java.util.List;
16import java.util.Map;
17import java.util.Set;
18 
19 
20public class WebClient {
21  public static void main(String[] args) throws Exception {
22    CookieStore store = new MyCookieStore();
23    CookiePolicy policy = new MyCookiePolicy();
24    CookieManager handler = new CookieManager(store, policy);
25    CookieHandler.setDefault(handler);
26    URL url = new URL("http://localhost:8080/cookieTest.jsp");
27    URLConnection conn = url.openConnection();
28 
29    InputStream in = conn.getInputStream();
30    BufferedReader reader = new BufferedReader(new InputStreamReader(in));
31    String input;
32    while ((input = reader.readLine()) != null) {
33      System.out.println(input);
34    }
35    reader.close();
36 
37  }
38}
39 
40class MyCookiePolicy implements CookiePolicy {
41  public boolean shouldAccept(URI uri, HttpCookie cookie) {
42//    String host = uri.getHost();
43  //  return host.equals("localhost");
44    return true;
45  }
46}
47 
48class MyCookieStore implements CookieStore {
49  private Map<URI, List<HttpCookie>> map = new HashMap<URI, List<HttpCookie>>();
50 
51  public void add(URI uri, HttpCookie cookie) {
52    List<HttpCookie> cookies = map.get(uri);
53    if (cookies == null) {
54      cookies = new ArrayList<HttpCookie>();
55      map.put(uri, cookies);
56    }
57    cookies.add(cookie);
58  }
59 
60  public List<HttpCookie> get(URI uri) {
61    List<HttpCookie> cookies = map.get(uri);
62    if (cookies == null) {
63      cookies = new ArrayList<HttpCookie>();
64      map.put(uri, cookies);
65    }http://www.huiyi8.com/jiaoben/
66    return cookies;
67  }
68 
69  public List<HttpCookie> getCookies() {
70    Collection<List<HttpCookie>> values = map.values();
71    List<HttpCookie> result = new ArrayList<HttpCookie>();
72    for (List<HttpCookie> value : values) {
73      result.addAll(value);
74    }
75    return result;
76  }
77 
78  public List<URI> getURIs() {
79    Set<URI> keys = map.keySet();
80    return new ArrayList<URI>(keys);
81 
82  }
83 
84  public boolean remove(URI uri, HttpCookie cookie) {
85    List<HttpCookie> cookies = map.get(uri);
86    if (cookies == null) {
87      return false;
88    }
89    return cookies.remove(cookie);
90  }
91 
92  public boolean removeAll() {
93    map.clear();
94    return true;
95  }
96}

【Java】CookieStore 类使用示例的更多相关文章

  1. 关于Java Logger类的使用问题 - 内存不释放

    原文地址:http://www.ihuxu.com/p/236.html   说明:这是一个利用Java Logger类的示例,完成简单的日志记录功能.代码中有部分类库没有说明,但不影响阅读. 本人技 ...

  2. JAVA String 类

    java String类中的常用方法:public char charAt(int index)返回字符串中第index个字符:public int length()返回字符串的长度:public i ...

  3. java 文件类操作(转载)

    11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程 ...

  4. 【47】java的类之间的关系:泛化、依赖、关联、实现、聚合、组合

    java的类之间的关系:泛化.依赖.关联.实现.聚合.组合 泛化: • 泛化关系(Generalization)也就是继承关系,也称为"is-a-kind-of"关系,泛化关系用于 ...

  5. 从字节码和JVM的角度解析Java核心类String的不可变特性

    1. 前言 最近看到几个有趣的关于Java核心类String的问题. String类是如何实现其不可变的特性的,设计成不可变的好处在哪里. 为什么不推荐使用+号的方式去形成新的字符串,推荐使用Stri ...

  6. java pojo类

    POJO POJO是Plain OrdinaryJava Object的缩写 可以当作简单的Java对象 实际就是普通JavaBeans 外文名 POJO 实际意义 普通JavaBeans 全     ...

  7. spring 配置 Java配置类装配bean

    https://www.cnblogs.com/chenbenbuyi/p/8457700.html 自动化装配的确有很大的便利性,但是却并不能适用在所有的应用场景,比如需要装配的组件类不是由自己的应 ...

  8. JAVA代理方式使用示例总结

    JAVA代理方式使用示例总结 一.    代理方式概括 Java的代理方式主要包含了静态代理,动态代理两种方式,其中,动态代理根据实现的方式不同,又可以划分为jdk动态代理和cglib动态代理. 二. ...

  9. java Random类详解

    java Random类位于java.util包下,主要用来生成随机数,本文详解介绍了Random类的用法,希望能帮到大家 Random类 (java.util) Random类中实现的随机算法是伪随 ...

随机推荐

  1. Android开发之布局文件里实现OnClick事件关联处理方法

    一般监听OnClickListener事件,我们都是通过Button button = (Button)findViewById(....); button.setOClickLisener....这 ...

  2. 通过apache,和nginx模块去除html中的空格和tab

    最近一个项目中,合作方要求去除html中的空格,不想改代码,所以百度了一下通过apache,和nginx模块去除html中的空格和tab的方案,下面记录下来: 一.nginx nginx可以通过mod ...

  3. 以其他字段作为某一字段的值. 字段长度char_length(?)

    UPDATE t_dealer a INNER JOIN t_dealer b ON a.id=b.id SET a.zihao=b.shortName where a.zihao is null o ...

  4. iOS 瀑布流封装

    代码地址如下:http://www.demodashi.com/demo/12284.html 一.效果预览 功能描述:WSLWaterFlowLayout 是在继承于UICollectionView ...

  5. storm笔记:Storm+Kafka简单应用

    storm笔记:Storm+Kafka简单应用 这几天工作须要使用storm+kafka,基本场景是应用出现错误,发送日志到kafka的某个topic.storm订阅该topic.然后进行兴许处理.场 ...

  6. [原创] 浅谈开源项目Android-Universal-Image-Loader(Part 3.1)

    最近,总算有时间去做些平时喜欢而没空去做的事情.一直觉得项目中使用的Image Loader适用性不强,昨晚在github随便逛逛,发现一个开源项目Android-Universal-Image-Lo ...

  7. 现在有一个城市销售经理,需要从公司出发,去拜访市内的商家,已知他的位置以及商家的位置,但是由于城市道路交通的原因,他只能在左右中选择一个方向,在上下中选择一个方向,现在问他有多少种方案到达商家地址。给定一个地图map及它的长宽n和m,其中1代表经理位置,2代表商家位置,-1代表不能经过的地区,0代表可以经过的地区,请返回方案数,保证一定存在合法路径。保证矩阵的长宽都小于等于10。

    include "stdafx.h" #include<iostream> #include<vector> #include<algorithm&g ...

  8. HDFS源码分析之LightWeightGSet

    LightWeightGSet是名字节点NameNode在内存中存储全部数据块信息的类BlocksMap需要的一个重要数据结构,它是一个占用较低内存的集合的实现,它使用一个数组array存储元素,使用 ...

  9. 为CentOS配置网易163的yum源

    Yum (Yellow dog Updater, Modified)是一个基于 RPM 包管理的字符前端软件包管理器.能够从指定的服务器自动下载 RPM 包并且安装,可以处理依赖性关系,并且一次安装所 ...

  10. ubuntu apt 主要命令及参数

    1. apt-cache search package 搜索安装包 2. apt-cache search all 搜索所有安装包 3. apt-cache show package 显示安装包信息 ...