我想创建一个与网站一起工作的c ++应用程序。为了使应用程序与网站保持同步,我希望能够从用户的默认浏览器中读取一些cookie。有没有办法做到这一点?
答案 0 :(得分:2)
不是一般意义上的 - 没有真正定义的cookie存储格式,因此每个浏览器都可以随时随地以任何风格保留cookie数据库。
你可以为主流浏览器(IE,Firefox)实现cookie阅读功能,但这会让一些人失望。它也是非强健的 - 当用户清除其cookie缓存或使用多个浏览器时会发生什么?
如果您希望让您的应用程序与网站保持同步,我建议您直接调用该网站上的Web服务(RESTful等),并使用您的应用程序用户配置的用户名/标识符。这样,你就不会被任意第三方所束缚,这种第三方充其量只是“可能”正确。
答案 1 :(得分:2)
是的,相当微不足道。定义网络服务http://example.com/capturecookie? tracking-guid 。它返回上次为该GUID发送的cookie。从您的应用程序,选择随机guid。首先在默认浏览器中使用随机GUID调用该Web服务(请参阅其他S.O.主题),然后使用应用程序内部的相同GUID。第二次,你将从第一次获取cookie。
请注意,“webbrowser的cookie”的确切概念必然是不精确的。例如,我的默认Web浏览器(Opera)设置为删除所有cookie,除了来自列入白名单的网站的cookie。因此,example.com是否有cookie取决于Opera是否正在运行。
答案 2 :(得分:1)
Firefox将其所有Cookie存储在cookies.txt中: http://www.velocityreviews.com/forums/t10844-cookies-in-firefox.html
对于“默认浏览器”,您将不得不为不同浏览器的数量编写自定义代码,但这肯定是不可能的。请参阅:http://www.aboutcookies.org/Default.aspx?page=2#ie7作为开始,然后使用Google搜索!