gpt4 book ai didi

C#:将 CookieContainer 写入磁盘并加载回来使用

转载 作者:IT王子 更新时间:2023-10-29 04:14:20 29 4
gpt4 key购买 nike

我有一个从名为 CookieJar 的 HttpWebRequest/HttpWebResponse session 中提取的 CookieContainer。我希望我的应用程序在运行之间存储 cookie,因此在程序一次运行时收集到 CookieContainer 中的 cookie 也将在下一次运行时使用。

我认为这样做的方法是以某种方式将 CookieContainer 的内容写入磁盘。我的问题是:

  • 如何将 CookieContainer 写入磁盘?是否有内置功能,或者,如果没有,人们采取了哪些方法?是否有任何类可用于简化此操作?
  • 将 CookieContainer 写入磁盘后,如何将其加载回去使用

更新:第一个答案建议序列化 CookieContainer。但是,我不是很熟悉如何序列化和反序列化这样复杂的对象。您能否提供一些示例代码?建议是利用 SOAPFormatter

最佳答案

这个问题困扰了我很多年,我找不到任何有效的方法。我解决了这个问题,所以将这些信息公之于众。

使用 BinaryFormatter 回答:

    public static void WriteCookiesToDisk(string file, CookieContainer cookieJar)
{
using(Stream stream = File.Create(file))
{
try {
Console.Out.Write("Writing cookies to disk... ");
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, cookieJar);
Console.Out.WriteLine("Done.");
} catch(Exception e) {
Console.Out.WriteLine("Problem writing cookies to disk: " + e.GetType());
}
}
}

public static CookieContainer ReadCookiesFromDisk(string file)
{

try {
using(Stream stream = File.Open(file, FileMode.Open))
{
Console.Out.Write("Reading cookies from disk... ");
BinaryFormatter formatter = new BinaryFormatter();
Console.Out.WriteLine("Done.");
return (CookieContainer)formatter.Deserialize(stream);
}
} catch(Exception e) {
Console.Out.WriteLine("Problem reading cookies from disk: " + e.GetType());
return new CookieContainer();
}
}

关于C#:将 CookieContainer 写入磁盘并加载回来使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1777203/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com