我正在制作一个访问网站的Java程序,这取决于分发cookie以便我可以登录。我发现使用CookieManager将允许我的URLConnection至少收集这些cookie,但后来如何在Java程序关闭时,我是否仍然存在这些cookie?
我已经有一个管理一些变量序列化的类,那么如何在这个序列化过程中实现cookie呢? Java显然不允许我默认序列化CookieManagers和CookieStores。
答案 0 :(得分:2)
您可以扩展CookieManager并使其实现可序列化。然后使用刚刚创建的扩展CookieManager。
例如:
public class NewCookieManager extends CookieManager implements Serializable{
//Code here...
}
答案 1 :(得分:0)
您可以使用cookie管理器,将所有cookie标头保留在可序列化的映射中。您可以调用Using cryptoProvider As New DESCryptoServiceProvider(),
ms As New MemoryStream(),
cs As New CryptoStream(ms, cryptoProvider.CreateEncryptor(KEY_64, IV_64), CryptoStreamMode.Write),
sw As New StreamWriter(cs)
'...
End Using
方法,使其再次解析cookie标头。
put
这样,您可以调用getCookieHeaders()获取所有cookie头的可序列化映射,并将其传递回构造函数以从先前状态初始化cookie管理器。