- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 URLSessionDataTask
访问我的后端 API。其中一部分包括访问使用 Safari 存储的 cookie。
例如http://api.example.com/v1/getCookies
后台的php代码是
echo $_COOKIE["myCookieName"];
iOS Safari 上确实存在 cookie,但是当向网站发出 URLSessionDataTask
请求时
let url: URL = URL(string: "http://api.example.com/v1/getCookies")!
let task = Foundation.URLSession(
configuration: URLSessionConfiguration.default,
delegate: self,
delegateQueue: OperationQueue.main
).dataTask(with: url)
task.resume()
响应是未设置 cookie,而不是将 cookie 的值作为对请求的响应发送。似乎来自 URLSessions 的 cookie 与 Safari 中的 cookie 是分开的。
cookie 存储在域 .example.com
和路径 /
下。
有什么方法可以让我从我的应用访问在 Safari 上设置的 cookie?例如,我想要这样的东西工作(我正在做一些更复杂的事情,但这基本上显示了我想要工作的东西)
有没有办法做这样的事情? HTTPCookie.cookies
和 HTTPCookieStorage.shared.cookies
似乎都不起作用。
最佳答案
Cookie 不能在不同的应用程序之间共享,但如果您在应用程序中使用网络浏览器,则可以实现。
如果您想从 Web View 或 SFSafariViewController 拦截 cookie,以便通过 URLSession 将它们用于其他请求,您应该实现自定义 URL 协议(protocol)。详情请见 https://www.raywenderlich.com/59982/nsurlprotocol-tutorial因此,您的应用程序内的任何请求/响应都可以被拦截(即使是来自 Web View 或任何 URL session ),并且 cookie 和其他 header 将对您可用。例如,您可以从 Web View 开始身份验证,从响应中拦截 cookie,并将它们用于您应用中的其他请求。
关于swift - 使用 URLSessionDataTask 时 Cookie 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43553453/
我正在使用 URLSessionDataTask 下载视频并播放它们(我需要缓存,所以我正在使用 func urlSession(_ session: URLSession, dataTask: UR
每次我收到以下错误: jsonError::Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 1."
使用 Swift 4,我有这段代码尝试向 REST API 发出 POST 请求: spinner.startAnimation(self) btnOk.isEnabled = false btnCa
我想模拟 URLSession,并返回一个模拟的 URLSessionDataTask。 为了模拟 URLSession 我创建了一个协议(protocol) protocol URLSessionP
我想模拟 URLSession,并返回一个模拟的 URLSessionDataTask。 为了模拟 URLSession 我创建了一个协议(protocol) protocol URLSessionP
我有一个 URLSessionDataTask 实例,我想知道操作何时开始(一个 Date 对象),这样我就可以计算已经过了多少时间。 我在 Apple 的文档 (https://developer.
我目前正在尝试为 URI 创建一个 URLSessionDataTask。因为 URI 是重定向的,所以我需要找出重定向的(最终)URL 是什么。为此,我想在 URLSessionDataDelega
我在我的 SwiftUI 应用程序中将此 APIRepresentative 类作为单例 EnvironmentObject。该类具有 @Published var,它按 ID 保存所有 Insigh
我正在尝试使用 URLSessionDataTask 访问我的后端 API。其中一部分包括访问使用 Safari 存储的 cookie。 例如http://api.example.com/v1/get
我有一个简单的应用程序,我以这种方式从存储在我自己的服务器中的 JSON 文件中获取数据 - 我正在使用 SwiftyJSON : func queryData(_ fileName:String)
我遇到了这个奇怪的问题,我无法对我不基于 GraphQL 控制的 REST 服务执行简单的 POST 请求。 问题是,无论我在 URLRequest 类的 httpMethod 属性中设置什么,它总是
基本上我有一些 JSON 数据,我希望从一堆 URL 中检索(全部来自同一主机),但是我只能大约每 2 秒至少请求一次此数据,并且一次只能请求一个,否则我会被服务器“时间禁止”。正如您将在下面看到的;
我是一名优秀的程序员,十分优秀!