不同线程上的NSURLSessionDataTask会破坏UIWebView中的会话cookie

时间:2017-03-22 15:20:10

标签: ios multithreading uiwebview nsurlsessiondatatask nshttpcookiestorage

我有一个非常难看的问题,即子类UIWebView维护用户的在线后端服务器的Web会话,该会话将与会话对象通信,同时用户登录到特定服务。我的应用程序有时会在后台线程上使用GDC运行数据更新服务,并使用NSURLSessionDataTask来执行后端请求。

后台线程工作以某种方式破坏了UIWebView维护的Web会话对象。根据我的理解,这意味着NSHTTPCookieStorage被破坏了......我完全不知道。

我认为如果由UIWebView维护的会话将与在任何其他线程中运行的NSURLSessionDataTask完成的任何其他请求共享,这将有所帮助。

过去我在UIWebView会话处于活动状态时抑制了对NSURLSessionDataTask工作的调用 - 但似乎在某些情况下,其中一个调用仍然存在。

我的问题是:我如何与NSURLSessionDataTask活动共享UIWebView使用的相同会话空间?

不幸的是,由于两种实现的复杂性,我无法提供示例代码......

1 个答案:

答案 0 :(得分:0)

看来,调用[NSURLSessionConfiguration ephemeralSessionConfiguration]作为用于NSURLSessionDataTask的Web会话会破坏UIWebView的数据......至少它会被破坏,然后不再可用。

使用catch()代替,技巧和UIWebView的数据保持完好。