首页 > 解决方案 > 如何在 Indy 10 中复制 cookie

问题描述

我在 Delphi 7 中使用 Indy 10。我在主窗体中有一个 TidCookieManager,我希望将其 cookie 复制到另一个线程中的另一个 cookie 管理器,这个线程显然可以访问主窗体。

如何复制这些 cookie?

谢谢,

大卫

标签: delphiindycookiemanager

解决方案


TIdCookieManager具有CookieCollection类型的公共属性,TIdCookies可提供对实际 cookie 的访问。一个人的 cookieTIdCookies可以TIdCookies通过其Assign()orAddCookies()方法直接复制到另一个人,例如:

// clears the dest collection before then copying cookies to it...
CookieMgrInWorkerThread.CookieCollection.Assign(CookieMgrInMainThread.CookieCollection);
// does not clear the dest collection before copying cookies to it...
CookieMgrInWorkerThread.CookieCollection.AddCookies(CookieMgrInMainThread.CookieCollection);

无论哪种方式,都是线程安全的,因为它在读/写操作期间TIdCookies使用内部。TMultiReadExclusiveWriteSynchronizer


推荐阅读