iOS 10 beta NSURLSession 请求的 cookie 不见了
iOS 10 beta NSURLSession request's cookie is gone
我有一个应用程序使用 NSURLSession 连接服务器来检索数据。在 iOS 9 中,它运行良好。最近iOS即将发布,我升级Xcode并使用iOS 10 Beta SDK...结果HTTP GET请求没有包含Cookie会话信息。这使得请求失败。我在这里搜索了 iOS 10 beta 关于 cookie 的问题,但运气不佳。想请问有没有人遇到过这种情况,有什么建议吗???提前谢谢你。
这是我创建 NSURLSession 的代码
NSURLSessionConfiguration *urlSessionConfig = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:EP_FETCH];
_fetchSession = [NSURLSession sessionWithConfiguration:urlSessionConfig
delegate:self // we MUST have a delegate for background configurations
delegateQueue:nil]; // nil means "a random, non-main-queue queue"
更新:
已向 Apple 提交错误。同时,还发现如果我改变
NSURLSessionConfiguration *urlSessionConfig = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:EP_FETCH];
至
NSURLSessionConfiguration *urlSessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
然后 cookie 返回到 HTTP 请求中。所以我想知道是 'NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier' 这个 api 有问题。
如果这甚至有可能不是您代码中的错误,请提交错误。任何回归都应在今天 报告给 Apple,因为距离最终发布只有几天的时间了 iSO 10。请提供:
- 重现问题的最小示例工具。
- 行为描述。
- 对以前操作系统行为的描述。
考虑将其标记为 "Security",因为这会影响设备对 Web 服务进行身份验证的能力。
关于诊断问题:
- 尝试将会话配置中的
HTTPCookieStorage
属性 显式设置为 [NSHTTPCookieStorage sharedHTTPCookieStorage]
。
- 设置断点并确保在您发起请求之前 cookie 已被您应用程序的其他部分存储。
- 尝试针对 iOS 9 SDK 和 运行 在 iOS 10 上进行编译。这将区分意外的 SDK 绑定(链接上或之后)行为差异普通错误。
- 添加代码以尝试手动提取 cookie 并验证它是否确实存在。
- 确认没有细微的错误,例如将 cookie 标记为安全然后通过 HTTP 发送、cookie 域匹配问题、意外重定向等
我有一个应用程序使用 NSURLSession 连接服务器来检索数据。在 iOS 9 中,它运行良好。最近iOS即将发布,我升级Xcode并使用iOS 10 Beta SDK...结果HTTP GET请求没有包含Cookie会话信息。这使得请求失败。我在这里搜索了 iOS 10 beta 关于 cookie 的问题,但运气不佳。想请问有没有人遇到过这种情况,有什么建议吗???提前谢谢你。
这是我创建 NSURLSession 的代码
NSURLSessionConfiguration *urlSessionConfig = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:EP_FETCH];
_fetchSession = [NSURLSession sessionWithConfiguration:urlSessionConfig
delegate:self // we MUST have a delegate for background configurations
delegateQueue:nil]; // nil means "a random, non-main-queue queue"
更新:
已向 Apple 提交错误。同时,还发现如果我改变
NSURLSessionConfiguration *urlSessionConfig = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:EP_FETCH];
至
NSURLSessionConfiguration *urlSessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
然后 cookie 返回到 HTTP 请求中。所以我想知道是 'NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier' 这个 api 有问题。
如果这甚至有可能不是您代码中的错误,请提交错误。任何回归都应在今天 报告给 Apple,因为距离最终发布只有几天的时间了 iSO 10。请提供:
- 重现问题的最小示例工具。
- 行为描述。
- 对以前操作系统行为的描述。
考虑将其标记为 "Security",因为这会影响设备对 Web 服务进行身份验证的能力。
关于诊断问题:
- 尝试将会话配置中的
HTTPCookieStorage
属性 显式设置为[NSHTTPCookieStorage sharedHTTPCookieStorage]
。 - 设置断点并确保在您发起请求之前 cookie 已被您应用程序的其他部分存储。
- 尝试针对 iOS 9 SDK 和 运行 在 iOS 10 上进行编译。这将区分意外的 SDK 绑定(链接上或之后)行为差异普通错误。
- 添加代码以尝试手动提取 cookie 并验证它是否确实存在。
- 确认没有细微的错误,例如将 cookie 标记为安全然后通过 HTTP 发送、cookie 域匹配问题、意外重定向等