我有一个运行良好的 php webAPI,我想在我的应用程序中使用它登录。我想为此使用 cookie。因此,我在用户登录时保存 cookie,这样就可以了。当我只想使用将 cookie 放入 HTTPCookieStorage.shared 时,我将它存储在 userdefaults 中。
我尝试将它用于我的新请求,但我的问题是如何将 cookie 添加到我的请求中?
我试过了,但是没用...
let cookiesArray = HTTPCookieStorage.shared.cookies
print(cookiesArray)
//HTTPCookieStorage.shared.setCookies(cookiesArray!, for: url, mainDocumentURL: url)
let headers = HTTPCookie.requestHeaderFields(with: cookiesArray!)
var urlRequest = URLRequest(url: url)
urlRequest.httpMethod = "POST"
urlRequest.httpShouldHandleCookies = true
urlRequest.httpBody = postString.data(using: String.Encoding.utf8)
urlRequest.allHTTPHeaderFields = headers
//urlRequest.setValue("PHPSESSID=oe22uf92poc5c7s23u4ukl83g0", forHTTPHeaderField: "Cookie")
//URLSessionConfiguration().httpCookieAcceptPolicy = .always
let session = URLSession.shared
session.configuration.httpCookieStorage = HTTPCookieStorage.shared
session.configuration.httpCookieAcceptPolicy = .always
session.configuration.httpShouldSetCookies = true
session.configuration.httpAdditionalHeaders = headers
let task = session.dataTask(with: urlRequest) { (data, response, error) in
print(data)
print(response)
print(error)
print("itt az end\n")
}
task.resume()
最佳答案
我还不能发表评论,但我同意需要更多信息。如果您遇到错误,发布这些错误会有所帮助。另外,你得到了什么
data
response
error
会有帮助。
除此之外,我会首先考虑将 Charles 设置为 HTTP 代理,这样您就可以准确地看到发出请求时发生了什么。了解您收到的响应会让您知道出了什么问题。
关于ios - Swift - urlsession cookies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47077773/