代码之家  ›  专栏  ›  技术社区  ›  Ran

在C++中从默认浏览器读取cookies

  •  0
  • Ran  · 技术社区  · 17 年前

    我想创建一个与网站一起工作的C++应用程序。为了保持应用程序与网站同步,我希望能够从用户的默认浏览器中读取一些cookie。有什么办法吗?

    3 回复  |  直到 17 年前
        1
  •  2
  •   Adam Wright    17 年前

    不是一般意义上的——没有真正定义的cookie存储格式,因此每个浏览器都可以自由地将cookie数据库保存在它喜欢的任何地方,以任何方式保存。

    你可以为主流浏览器(比如火狐)实现cookie读取功能,但这会让一些人无法使用。它也将是非健壮的——当用户清除他们的cookie缓存或使用多个浏览器时会发生什么?

    如果您希望使应用程序与网站保持同步,我建议您让它直接调用该网站上的Web服务(restful等),并使用您的应用程序用户配置的用户名/标识符。这样,你就不会被束缚在一个任意的第三方身上,那最多只是“可能”的权利。

        2
  •  2
  •   MSalters    17 年前

    是的,相当微不足道。定义Web服务 http://example.com/capturecookie ? 跟踪引导 . 它返回上次为该guid发送的cookie。从应用程序中,选择一个随机的GUID。首先在默认浏览器中使用随机的guid调用WebService(请参阅其他S.O.主题),然后在应用程序内部使用相同的guid。第二次,你会从第一次得到饼干。

    请注意,“WebBrowser的cookies”的确切概念必然是不精确的。例如,我的默认WebBrowser(Opera)设置为在存在时删除所有cookie,白名单站点的cookie除外。所以example.com是否有cookie很大程度上取决于opera是否在运行。

        3
  •  1
  •   Stefan Mai    17 年前

    firefox将所有cookie存储在cookies.txt中: http://www.velocityreviews.com/forums/t10844-cookies-in-firefox.html

    对于“默认浏览器”,您必须为不同浏览器的数量编写自定义代码,但这显然是不可能的。见: http://www.aboutcookies.org/Default.aspx?page=2#ie7 首先,开始谷歌搜索!