我的項目中有幾個不同的WKWebViews,他們都通過一個WKProcessPool共享cookie。使用共享的WKWebViewCookies請求
現在我想對REST API發出請求,並且需要將該WKWebViews中的cookie完全發送到該API。有沒有辦法得到餅乾?我所得到的一切都是來自NSHTTPCookieStorage
的cookies,但它們似乎並不與我在WKWebView中使用的Cookie保持同步。或者甚至有可能發出使用WKProcessPool的請求?
我的項目中有幾個不同的WKWebViews,他們都通過一個WKProcessPool共享cookie。使用共享的WKWebViewCookies請求
現在我想對REST API發出請求,並且需要將該WKWebViews中的cookie完全發送到該API。有沒有辦法得到餅乾?我所得到的一切都是來自NSHTTPCookieStorage
的cookies,但它們似乎並不與我在WKWebView中使用的Cookie保持同步。或者甚至有可能發出使用WKProcessPool的請求?
1)如果你的cookies不是純HTTP的,你可以通過評估JavaScript命令document.cookie
webView
得到它們並將它們用於你的請求。 如果他們只是HTTP,似乎沒有工作方法來做到這一點。 據我所知,在WKWebView
和NSURLSession
之間沒有文檔化的同步cookie的方法。另一種方法(如果Cookie屬於REST API所屬的同一域) - 使用相同的進程池創建「背景」webView
並通過此實例對REST API執行所有操作 - cookies將自動添加(即使HTTP-只):
可以設置任何PARAMS(方法/體/標頭/等)經由loadRequest:
請求和負載 它;如果您的REST API返回JSON,則可以使用JavaScript命令 document.body
來獲取它;
獲得響應代碼有點困難 - 你需要實現的 WKNavigationDelegate
和catch it webView:decidePolicyForNavigationResponse:
方法。
此外,您需要記住,您只能同時執行webView
中的1個請求 。所以,你可能需要創建一個隊列 的請求,將一個接一個地執行。