【问题标题】:libcurl + cookies on iOSiOS 上的 libcurl + cookie
【发布时间】:2016-05-31 16:43:36
【问题描述】:

我有一个小的 http C++ 库,它基本上是 libcurl 的一个薄包装器。我正在使用这个库来访问网站(例如登录、检查/下载某些东西,如发票等)。

在我最新的 iOS 项目中,我还尝试使用这个 libcurl 包装器来访问网站(登录、阅读消息、发送消息,它基本上是一个信使应用程序)。然而,我无法开始工作的一件事是 cookies。我的预期行为是,我的 iOS 应用程序(即libcurl,即)在登录网站后存储 cookie,因此每次打开应用程序时都不需要登录。

为此,我尝试将CURLOPT_COOKIEFILECURLOPT_COOKIEJAR 选项设置为libcurl 会话句柄。我的理解是我应该将这些选项设置为相同的文件路径,以便 libcurl 能够加载和存储 cookie。

我将此路径设置为我的 iOS 沙箱文档目录的完整文件路径。
但是,似乎从未创建过 cookie 文件,因此预期的行为将不起作用。

有什么特别需要考虑的吗,或者谁能给我提示一下我可能做错了什么?

我在 iOS 上使用 libcurl 的这个版本:https://github.com/sinofool/build-libcurl-ios

【问题讨论】:

  • 应该可以。您的应用是否有权在那里读/写文件?启用 VERBOSE 模式并查看 libcurl 是否告诉您任何信息。请注意,在您关闭简易句柄之前,libcurl 不会写入任何 cookie 文件。
  • 是的,该应用程序确实有权限,我也在同一目录中下载/保存图像。也许关闭将是一个问题,请检查一下。
  • 似乎有效。我明确地关闭了句柄和应用程序关闭/后台,现在写入了 cookie 文件。它也会在重新启动时重新打开并重复使用:) 如果您将答案添加为回复,我可以接受。
  • 除非你正在尝试构建一个跨平台的项目,否则你为什么要使用libcurl,当你可以使用原生的NSURLSession?请注意,我喜欢 curllibcurl,但对于原生 iOS 项目,它(在我看来)绝对不是最佳解决方案。
  • 我有一个现成的框架作为 c++ lib,我也想在非 iOS 上使用它:)

标签: ios iphone cookies ios9 libcurl


【解决方案1】:

这应该行得通!您的应用程序是否有权在那里读取/写入文件?启用 VERBOSE 模式并查看 libcurl 是否告诉您任何信息。请注意,在您关闭简易句柄之前,libcurl 不会写入任何 cookie 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 2012-04-18
    • 2013-12-12
    • 2013-11-02
    • 2012-02-20
    • 2019-04-19
    相关资源
    最近更新 更多