我正在尝试将带有URLRequest的cookie发送到xcode中的WKWebView,我的应用程序需要发送会话cookie以避免网站上的登录页面。我已经尝试了多种方法,但都无法正常工作!
第一方式:
if #available(iOS 11.0, *) {
let cookie = HTTPCookie(properties: [
.domain: URL1,
.path: "/",
.name: "sid",
.value: sessionId,
.secure: "True",
.expires: NSDate(timeIntervalSinceNow: 31556926)
])!
webView.configuration.websiteDataStore.httpCookieStore.setCookie(cookie)
} else {
//other
}
第二种方式:
// First
let jar = HTTPCookieStorage.shared
let sessionValue = sessionId + "; expires= ( date )";
let cookieHeaderField = ["Set-Cookie": sessionValue] // Or ["Set-Cookie": "key=value, key2=value2"] for multiple cookies
let cookies = HTTPCookie.cookies(withResponseHeaderFields: cookieHeaderField, for: url)
jar.setCookies(cookies, for: url, mainDocumentURL: url)
另一个:
var request = URLRequest(url: url as URL)
request.setValue("sid=\(sessionId);", forHTTPHeaderField: "Set-Cookie")
request.httpShouldHandleCookies = true
webView.load(request)
有人可以帮我吗!
最后!这条线解决了我的问题,节省了我的时间
HTTPCookieStorage.shared.cookieAcceptPolicy = .always
所以,永远不要忘记这一行!