【问题标题】:How do I put a cookie into Shared Storage on an iPhone App?如何将 cookie 放入 iPhone 应用程序的共享存储中?
【发布时间】:2011-07-27 14:09:25
【问题描述】:

我正在使用 Monotouch 开发 iPhone 应用程序。我正在使用 Web 请求来调用返回 cookie 的服务。我的主要目标是能够根据需要在各种视图控制器中使用 cookie 来处理 Web 请求。我假设将共享存储用于 cookie 是可行的方法。

我对此进行了尝试,发现了以下障碍:

  • HttpWebResponse 有一个由 System.Net.Cookie 对象组成的 cookie 集合。
  • NSSharedStorage 对象只接受 NSHttpCookie 对象。

我还没有找到将 System.Net.Cookie 对象转换为 NSHttpCookie 对象的方法。这主要是因为 NSHttpCookie 只有只读属性,我不知道如何使用 C# 中的构造函数/静态函数创建一个。

所以我真的有两个问题:

  1. 将 cookie 插入共享存储是实现我的目标的最佳方式吗?
  2. 如果是这样,我该怎么做?

更新:

只是为了进一步澄清。答案here 做的和我想做的相反。

【问题讨论】:

    标签: c# iphone cookies httpwebrequest xamarin.ios


    【解决方案1】:

    我认为没有 NSSharedStorage 这样的东西。 NSHTTPCookieStorage 是你的意思吗?如果是这样,这对你不起作用。根据文档:“iOS 中的应用程序之间不共享 Cookie”。也没有快速的方法来做你想做的事。您必须执行更新中提供的链接中建议的操作。即创建一个进行转换的扩展方法(或某种实用方法)。

    您可能必须在应用中管理自己的 System.Net.Cookie 集合。

    【讨论】:

    • 是的,我说的是 NSHttpCookieStorage,我知道 cookie 不会在应用程序之间共享。我的理解(可能是不正确的)NSHttpCookieStorage 对象是存储 cookie 的标准位置,这就是为什么我正在寻找一种解决方案来适应它。
    • 继续... 如前所述,我主要想在某个地方粘贴 cookie,以便根据需要重复使用。创建从 System.Net.Cookie 到 NSHttpCookie 的扩展方法并不像我链接的问题中显示的那么简单,因为 NSHttpCookie 上的属性都是只读的,并且(至少对我而言)不清楚我应该如何设置属性使用提供的构造函数。无论如何,我已经在我的应用程序中创建了一个属性,我正在使用它来存储 cookie。这解决了我的问题。
    • 很高兴您找到了解决方案。但是,对于将来,如果您想创建一个 NSHttpCookie,则必须使用静态工厂方法 CookieFromProperties() 传入一个 NSDictionary 属性。有关您可以在 NSDictionary 中使用的有效密钥,请参阅 here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多