CookieManager 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
CookieManager 提供了具体实现 CookieHandler,它将 Cookie 的存储与接受和拒绝 Cookie 的策略分开。
[Android.Runtime.Register("java/net/CookieManager", DoNotGenerateAcw=true)]
public class CookieManager : Java.Net.CookieHandler
[<Android.Runtime.Register("java/net/CookieManager", DoNotGenerateAcw=true)>]
type CookieManager = class
inherit CookieHandler
- 继承
- 属性
注解
CookieManager 提供了具体实现 CookieHandler,它将 Cookie 的存储与接受和拒绝 Cookie 的策略分开。 CookieManager 使用 CookieStore 管理存储的对象进行 CookiePolicy 初始化,该对象针对 Cookie 接受/拒绝做出策略决策。
java.net 包中的 HTTP Cookie 管理如下所示: <blockquote>
{@code
use
CookieHandler <------- HttpURLConnection
^
| impl
| use
CookieManager -------> CookiePolicy
| use
|--------> HttpCookie
| ^
| | use
| use |
|--------> CookieStore
^
| impl
|
Internal in-memory implementation
}
<ul><li> CookieHandler 是 Cookie 管理的核心。 用户可以调用 CookieHandler.setDefault 来设置要使用的具体 CookieHanlder 实现。 </li li><> CookiePolicy.shouldAccept 将由 CookieManager.put 调用,以查看是否应接受并放入 Cookie 存储中。 用户可以使用三个预定义的 CookiePolicy 中的任何一个,即ACCEPT_ALL、ACCEPT_NONE和ACCEPT_ORIGINAL_SERVER,或者用户可以定义自己的 CookiePolicy 实现并告知 CookieManager 使用它。 </li><> CookieStore 是存储任何接受的 HTTP Cookie 的位置。 如果未在创建时指定,CookieManager 实例将使用内部内存中实现。 或者,用户可以实现一个并告知 CookieManager 使用它。 </li li><> 目前,CookieManager 仅使用 CookieStore.add(URI、HttpCookie)和 CookieStore.get(URI)。 其他方案是为了完整性,可能需要更复杂的 CookieStore 实现,例如 NetscapeCookieStore。 </li></ul></blockquote>
用户可以通过多种方式挂钩自己的 HTTP Cookie 管理行为,例如 <blockquote><ul><li>Use CookieHandler.setDefault,将全新的 CookieHandler 实现 <li>Let CookieManager 设置为默认 CookieHandler 实现,但实现用户自己的 CookieStore 并 CookiePolicy 告知默认 CookieManager 使用它们: <blockquote>
// this should be done at the beginning of an HTTP session
CookieHandler.setDefault(new CookieManager(new MyCookieStore(), new MyCookiePolicy()));
</blockquote><li>Let CookieManager 是默认 CookieHandler 实现,但使用自定义 CookiePolicy: <blockquote>
// 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());
</blockquote/ul></blockquote><>
实现符合 RFC 2965 第 3.3 节。
已在 1.6 中添加。
本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。
构造函数
| 名称 | 说明 |
|---|---|
| CookieManager() |
创建新的 Cookie 管理器。 |
| CookieManager(ICookieStore, ICookiePolicy) |
使用指定的 Cookie 存储和 Cookie 策略创建新的 Cookie 管理器。 |
| CookieManager(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
属性
| 名称 | 说明 |
|---|---|
| Class |
返回此 |
| CookieStore |
检索当前 Cookie 存储。 |
| Handle |
基础 Android 实例的句柄。 (继承自 Object) |
| JniIdentityHashCode |
CookieManager 提供了具体实现 |
| JniPeerMembers |
CookieManager 提供了具体实现 |
| PeerReference |
CookieManager 提供了具体实现 |
| ThresholdClass |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
| ThresholdType |
此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。 |
方法
| 名称 | 说明 |
|---|---|
| Clone() |
创建并返回此对象的副本。 (继承自 Object) |
| Dispose() |
CookieManager 提供了具体实现 |
| Dispose(Boolean) |
CookieManager 提供了具体实现 |
| Equals(Object) |
指示其他对象是否“等于”此对象。 (继承自 Object) |
| Get(URI, IDictionary<String,IList<String>>) |
CookieManager 提供了具体实现 |
| GetHashCode() |
返回对象的哈希代码值。 (继承自 Object) |
| JavaFinalize() |
当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。 (继承自 Object) |
| Notify() |
唤醒正在等待此对象的监视器的单个线程。 (继承自 Object) |
| NotifyAll() |
唤醒正在等待此对象的监视器的所有线程。 (继承自 Object) |
| Put(URI, IDictionary<String,IList<String>>) |
CookieManager 提供了具体实现 |
| SetCookiePolicy(ICookiePolicy) |
设置此 Cookie 管理器的 Cookie 策略。 |
| SetHandle(IntPtr, JniHandleOwnership) |
设置 Handle 属性。 (继承自 Object) |
| ToArray<T>() |
CookieManager 提供了具体实现 |
| ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
| UnregisterFromRuntime() |
CookieManager 提供了具体实现 |
| Wait() |
使当前线程等待,直到唤醒它,通常是通过 em 通知/em< 或 >em<interrupted>/em<。><> (继承自 Object) |
| Wait(Int64, Int32) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。 (继承自 Object) |
| Wait(Int64) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。 (继承自 Object) |
显式接口实现
| 名称 | 说明 |
|---|---|
| IJavaPeerable.Disposed() |
CookieManager 提供了具体实现 |
| IJavaPeerable.DisposeUnlessReferenced() |
CookieManager 提供了具体实现 |
| IJavaPeerable.Finalized() |
CookieManager 提供了具体实现 |
| IJavaPeerable.JniManagedPeerState |
CookieManager 提供了具体实现 |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
CookieManager 提供了具体实现 |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
CookieManager 提供了具体实现 |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
CookieManager 提供了具体实现 |
扩展方法
| 名称 | 说明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
CookieManager 提供了具体实现 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |