gpt4 book ai didi

ios - NSHTTPCookieStorage 用于相同的 URL 但不同的用户

转载 作者:行者123 更新时间:2023-12-01 18:44:24 26 4
gpt4 key购买 nike

可能这是一个愚蠢的问题,但我想为相同的 url 存储 cookie,但为用户名存储不同的 cookie。如何使用 NSHTTPCookieStorage 来实现?这就是我从响应中存储 cookie 的方式。

        NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;

NSDictionary *headerFields = [httpResponse allHeaderFields];


NSArray* cookies = [NSHTTPCookie
cookiesWithResponseHeaderFields:headerFields
forURL:[NSURL URLWithString:@""]];

for (NSHTTPCookie *cookie in cookies) {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
}

NSString *urlString = ...;

[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookies:cookies forURL:[NSURL URLWithString:urlString] mainDocumentURL:nil];

最佳答案

如果我对您的理解正确,您希望为不同的用户设置单独的 cookie 集。如果是这样,那么您应该:

  • 创建您自己的自定义 cookie 存储类(可能只是一个以基 URL 作为键,cookie 数组作为值的字典)并在其中存储 cookie,除了使用 sharedHTTPCookieStorage目的。
  • 当您更改用户时,删除共享 cookie 存储并从新用户的 cookie jar 中复制 cookie(或有选择地从共享 jar 中删除该用户创建的每个 cookie)。

  • 如果我误解了您,并且您出于某种原因想要在共享 cookie 存储之外存储一个特定的 cookie:
  • 使用 nil cookie jar(禁用自动 cookie 存储)基于配置创建 NSURLSession 对象。
  • 像您在上面所做的那样将 cookie 存储到一个 cookie jar 中(可能是也可能不是共享的 cookie jar ),但不要存储您想要避免存储的那些。
  • 编写一个方法来将该 cookie jar 中的 cookie 添加到 NSURLRequest 对象。
  • 在使用 URL 请求对象创建任务之前,请始终记住调用该方法。

  • 当然,这一切都假设 NSURLSession。我认为没有办法使用 NSURLConnection 控制 cookie 存储。所有 cookie 都存储在 cookie jar 、句号、AFAIK 中。

    关于ios - NSHTTPCookieStorage 用于相同的 URL 但不同的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37597250/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com