swift如何处理NavigationAction.request.allHTTPHeaderFields?[“ Set-Cookie”]。我有一个包含多个Cookie的响应,并且我想知道如何处理它,因为navigationAction.request.allHTTPHeaderFields?[“ Set-Cookie”]返回一个字符串。我根本无法测试,因为我正在尝试实现单点登录,因此必须等到部署它后才能查看它是否有效。

最佳答案

为了以防万一,将来的用户更好的解决方案是实现WKNavigationDelegate并通过cookie进行迭代,如下所示:

func webView(_: WKWebView, decidePolicyFor: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {

    let response = (decidePolicyFor.response as! HTTPURLResponse)
    let cookies = HTTPCookie.cookies(withResponseHeaderFields: response.allHeaderFields as! [String : String], for: response.url!)

    for cookie in cookies {
       //cookie.value, cookie.name etc... do logic here
    }


    decisionHandler(.allow)
 }

10-08 06:57
查看更多