新聞中心
CookieManager

珠山網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司成立與2013年到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
java.lang.Object
|---java.net.CookieHandler
|---|---java.net.CookieManager
public class CookieManager
extends CookieHandlerCookieManager 提供了 CookieHandler 的具體實(shí)現(xiàn),它將 cookie 的存儲(chǔ)與接受和拒絕 cookie 的策略分開。 CookieManager 使用管理存儲(chǔ)的 CookieStore 和 CookiePolicy 對(duì)象進(jìn)行初始化,該對(duì)象對(duì) cookie 接受/拒絕做出策略決策。
java.net 包中的 HTTP cookie 管理如下所示:
use
CookieHandler <------- HttpURLConnection
^
| impl
| use
CookieManager -------> CookiePolicy
| use
|--------> HttpCookie
| ^
| | use
| use |
|--------> CookieStore
^
| impl
|
Internal in-memory implementation
- CookieHandler 是 cookie 管理的核心。 用戶可以調(diào)用 CookieHandler.setDefault 來設(shè)置要使用的具體 CookieHanlder 實(shí)現(xiàn)。
- CookiePolicy.shouldAccept 將由 CookieManager.put 調(diào)用,以查看是否應(yīng)接受一個(gè) cookie 并將其放入 cookie 存儲(chǔ)中。 用戶可以使用三個(gè)預(yù)定義的 CookiePolicy 中的任何一個(gè),即 ACCEPT_ALL、ACCEPT_NONE 和 ACCEPT_ORIGINAL_SERVER,或者用戶可以定義自己的 CookiePolicy 實(shí)現(xiàn)并告訴 CookieManager 使用它。
- CookieStore 是存儲(chǔ)任何接受的 HTTP cookie 的地方。如果在創(chuàng)建時(shí)未指定,CookieManager 實(shí)例將使用內(nèi)部?jī)?nèi)存實(shí)現(xiàn)。 或者用戶可以實(shí)現(xiàn)一個(gè)并告訴 CookieManager 使用它。
- 目前,CookieManager 僅使用 CookieStore.add(URI, HttpCookie) 和 CookieStore.get(URI)。 其他是為了完整性,可能需要更復(fù)雜的 CookieStore 實(shí)現(xiàn),例如 網(wǎng)景CookieSotre。
用戶可以通過多種方式連接自己的 HTTP cookie 管理行為,例如
- 使用 CookieHandler.setDefault 設(shè)置一個(gè)全新的 CookieHandler 實(shí)現(xiàn)
- 讓 CookieManager 成為默認(rèn)的 CookieHandler 實(shí)現(xiàn),但實(shí)現(xiàn)用戶自己的 CookieStore 和 CookiePolicy 并告訴默認(rèn) CookieManager 使用它們:
// this should be done at the beginning of an HTTP session
CookieHandler.setDefault(new CookieManager(new MyCookieStore(), new MyCookiePolicy()));
- 讓 CookieManager 成為默認(rèn)的 CookieHandler 實(shí)現(xiàn),但使用自定義的 CookiePolicy:
// this should be done at the beginning of an HTTP session
CookieHandler.setDefault(new CookieManager());
// this can be done at any point of an HTTP session
((CookieManager)CookieHandler.getDefault()).setCookiePolicy(new MyCookiePolicy());
構(gòu)造函數(shù)摘要
| 構(gòu)造函數(shù) | 描述 |
|---|---|
| CookieManager() | 創(chuàng)建一個(gè)新的 cookie 管理器。 |
| CookieManager(CookieStore store, CookiePolicy cookiePolicy) | 使用指定的 cookie 存儲(chǔ)和 cookie 策略創(chuàng)建一個(gè)新的 cookie 管理器。 |
方法總結(jié)
| 修飾符和類型 | 方法 | 描述 |
|---|---|---|
| MapString,ListString | get(URI uri, MapString,ListString requestHeaders) | 從請(qǐng)求標(biāo)頭中指定 uri 的 cookie 緩存中獲取所有適用的 cookie。 |
| CookieStore | getCookieStore() | 檢索當(dāng)前的 cookie 存儲(chǔ)。 |
| void | put(URI uri, MapString,ListString responseHeaders) | 設(shè)置所有適用的 cookie,示例是名為 Set-Cookie2 的響應(yīng)頭字段,存在于 cookie 緩存中的響應(yīng)頭中。 |
| void | setCookiePolicy(CookiePolicy cookiePolicy) | 設(shè)置此 cookie 管理器的 cookie 策略。 |
| 從類 java.net.CookieHandler 繼承的方法 |
|---|
| getDefault, setDefault |
| 從類 java.lang.Object 繼承的方法 |
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
構(gòu)造函數(shù)詳細(xì)信息
CookieManager
public CookieManager()
創(chuàng)建一個(gè)新的 cookie 管理器。
此構(gòu)造函數(shù)將創(chuàng)建具有默認(rèn) cookie 存儲(chǔ)和接受策略的新 cookie 管理器。 效果同 CookieManager(null, null)。
CookieManager
public CookieManager(CookieStore store, CookiePolicy cookiePolicy)
使用指定的 cookie 存儲(chǔ)和 cookie 策略創(chuàng)建一個(gè)新的 cookie 管理器。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| store | Cookie 管理器使用的 CookieStore。 如果為 null,則 cookie 管理器將使用默認(rèn)值,即內(nèi)存中的 CookieStore 實(shí)現(xiàn)。 |
| cookiePolicy | cookie 管理器用作策略回調(diào)的 CookiePolicy 實(shí)例。 如果為 null,將使用 ACCEPT_ORIGINAL_SERVER。 |
方法詳情
setCookiePolicy
public void setCookiePolicy(CookiePolicy cookiePolicy)
設(shè)置此 cookie 管理器的 cookie 策略。
默認(rèn)情況下,CookieManager 的實(shí)例將具有 cookie 策略 ACCEPT_ORIGINAL_SERVER。 用戶始終可以調(diào)用此方法來設(shè)置另一個(gè) cookie 策略。
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| cookiePolicy | cookie 政策。 可以為 null,這對(duì)當(dāng)前的 cookie 策略沒有影響。 |
getCookieStore
public CookieStore getCookieStore()
檢索當(dāng)前的 cookie 存儲(chǔ)。
返回:
cookie 管理器當(dāng)前使用的 cookie 存儲(chǔ)。
get
public MapString,ListString get(URI uri, MapString,ListString requestHeaders) throws IOException
從類復(fù)制的描述:CookieHandler
從請(qǐng)求標(biāo)頭中指定 uri 的 cookie 緩存中獲取所有適用的 cookie。
作為參數(shù)傳遞的 URI 指定了 cookie 的預(yù)期用途。 特別是該方案應(yīng)反映 cookie 是通過 http、https 發(fā)送還是在其他上下文(如 javascript)中使用。 在 javascript 的情況下,主機(jī)部分應(yīng)反映 cookie 的目的地或它們的來源。
由實(shí)現(xiàn)來考慮 URI 和 cookie 屬性和安全設(shè)置來確定應(yīng)該返回哪些。
HTTP 協(xié)議實(shí)現(xiàn)者應(yīng)確保在添加與選擇 cookie 相關(guān)的所有請(qǐng)求標(biāo)頭之后、發(fā)送請(qǐng)求之前調(diào)用此方法。
指定者:
進(jìn)入類 CookieHandler
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| uri | 表示 cookie 的預(yù)期用途的 URI |
| requestHeaders | - 從請(qǐng)求標(biāo)頭字段名稱到表示當(dāng)前請(qǐng)求標(biāo)頭的字段值列表的映射 |
返回:
從狀態(tài)管理標(biāo)頭(字段名稱為“Cookie”或“Cookie2”)到包含狀態(tài)信息的 cookie 列表的不可變映射
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IOException | 如果發(fā)生 I/O 錯(cuò)誤 |
put
public void put(URI uri, MapString,ListString responseHeaders) throws IOException
從類復(fù)制的描述:CookieHandler
設(shè)置所有適用的 cookie,示例是名為 Set-Cookie2 的響應(yīng)頭字段,存在于 cookie 緩存中的響應(yīng)頭中。
指定者:
放入類 CookieHandler
參數(shù):
| 參數(shù)名稱 | 參數(shù)描述 |
|---|---|
| uri | cookie 的來源 URI |
| responseHeaders | 從字段名稱到表示返回的響應(yīng)標(biāo)頭字段的字段值列表的不可變映射 |
Throws:
| Throw名稱 | Throw描述 |
|---|---|
| IOException | 如果發(fā)生 I/O 錯(cuò)誤 |
分享標(biāo)題:創(chuàng)新互聯(lián)鴻蒙OS教程:鴻蒙OSCookieManager
當(dāng)前路徑:http://fisionsoft.com.cn/article/ccspddp.html


咨詢
建站咨詢
