forked from XWxiaowei/JavaCode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCookieStore.java
More file actions
129 lines (116 loc) · 3.6 KB
/
CookieStore.java
File metadata and controls
129 lines (116 loc) · 3.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/*
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package java.net;
import java.util.List;
import java.util.Map;
/**
* A CookieStore object represents a storage for cookie. Can store and retrieve
* cookies.
*
* <p>{@link CookieManager} will call {@code CookieStore.add} to save cookies
* for every incoming HTTP response, and call {@code CookieStore.get} to
* retrieve cookie for every outgoing HTTP request. A CookieStore
* is responsible for removing HttpCookie instances which have expired.
*
* @author Edward Wang
* @since 1.6
*/
public interface CookieStore {
/**
* Adds one HTTP cookie to the store. This is called for every
* incoming HTTP response.
*
* <p>A cookie to store may or may not be associated with an URI. If it
* is not associated with an URI, the cookie's domain and path attribute
* will indicate where it comes from. If it is associated with an URI and
* its domain and path attribute are not specified, given URI will indicate
* where this cookie comes from.
*
* <p>If a cookie corresponding to the given URI already exists,
* then it is replaced with the new one.
*
* @param uri the uri this cookie associated with.
* if {@code null}, this cookie will not be associated
* with an URI
* @param cookie the cookie to store
*
* @throws NullPointerException if {@code cookie} is {@code null}
*
* @see #get
*
*/
public void add(URI uri, HttpCookie cookie);
/**
* Retrieve cookies associated with given URI, or whose domain matches the
* given URI. Only cookies that have not expired are returned.
* This is called for every outgoing HTTP request.
*
* @return an immutable list of HttpCookie,
* return empty list if no cookies match the given URI
*
* @param uri the uri associated with the cookies to be returned
*
* @throws NullPointerException if {@code uri} is {@code null}
*
* @see #add
*
*/
public List<HttpCookie> get(URI uri);
/**
* Get all not-expired cookies in cookie store.
*
* @return an immutable list of http cookies;
* return empty list if there's no http cookie in store
*/
public List<HttpCookie> getCookies();
/**
* Get all URIs which identify the cookies in this cookie store.
*
* @return an immutable list of URIs;
* return empty list if no cookie in this cookie store
* is associated with an URI
*/
public List<URI> getURIs();
/**
* Remove a cookie from store.
*
* @param uri the uri this cookie associated with.
* if {@code null}, the cookie to be removed is not associated
* with an URI when added; if not {@code null}, the cookie
* to be removed is associated with the given URI when added.
* @param cookie the cookie to remove
*
* @return {@code true} if this store contained the specified cookie
*
* @throws NullPointerException if {@code cookie} is {@code null}
*/
public boolean remove(URI uri, HttpCookie cookie);
/**
* Remove all cookies in this cookie store.
*
* @return {@code true} if this store changed as a result of the call
*/
public boolean removeAll();
}