未为后续请求设置iOS UIwebview Cookie

时间:2016-01-09 19:29:45

标签: ios cordova cookies uiwebview nsmutableurlrequest

我们在混合移动应用程序中使用经过修改的inAppbrowser cordova插件。在我的UIWebview中加载第一个请求时,我设置了几个cookie。这是我的代码

 NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url];

[request setValue:[NSString stringWithFormat:@"TOKEN_1=%@; TOKEN_2=%@;", @"VALUE_1", @"VALUE_2"] forHTTPHeaderField:@"Cookie"];

[self.webView loadRequest:request];

我们正在将上述令牌cookie用于SSO到其他应用程序中。它工作正常。

一旦我发起上述请求,它就会经历多个网址重定向。在每个请求中,服务器都会尝试在响应中设置一些额外的cookie。以下是上述请求的回复。

Location: /my.policy
Set-Cookie: Session_1=5f1dddd; domain=bhh.com;path=/;secure
Set-Cookie: session_2=0813d65bcbbf631a4f3d482f5f19560d; domain=bhh.com;path=/;secure

根据服务器的上述响应,下一个请求应该使用上述cookie(Session_1,session_2)转到/my.policy。当我查看charles代理时,下一个请求也只包含我在开头设置的标记(TOKEN_1,TOKEN_2)。服务器发送的cookie未设置为下一个请求。我在 shouldStartLoadWithRequest 委托方法中保留了一些日志来从 sharedHTTPCookieStorage 中读取cookie。我可以看到服务器cookie存在于cookie存储中,但它们不会随请求一起传递。

如果我删除了第一个请求的Cookie设置(已移除TOKEN_1和TOKEN_2),则会为后续请求发送服务器Cookie。

我尝试了以下方法来解决我的问题但没有一个能够解决问题。

尝试通过从cookie存储中读取来设置cookie以在 shouldStartLoadWithRequest 委托方法中请求。

尝试设置Cookie政策

[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];

有什么想法吗?

0 个答案:

没有答案