2

在我的应用程序中,我想使用 WKWebView 进行登录,然后完成对服务器的所有进一步请求。

我能够使用 WKWebView 成功登录。在它的成功我得到会话信息。我之前使用 UIWebView 实现了它,它工作正常。我所有进一步的 Web 服务调用在 UIWebView 中都运行良好。

现在,当我使用 WKWebView 实现登录时,它成功登录,但是当我点击不同的链接(URL)时,它每次都会给我注销响应,并且我正在尝试使用 Cookie 调用服务,并且它没有给我正确的响应,因为会话信息不是被通过。

有什么办法,我可以存储 WKWebView 的那些会话信息

任何帮助将不胜感激。请帮忙!

这是我设置 cookie 的代码:-

*{
    // Set iPad cookie for our requests
    NSString*               dotDomain = [NSString stringWithFormat:@".%@", CookieDomain];
    NSDictionary*       newCookieDict = [NSMutableDictionary
                                         dictionaryWithObjectsAndKeys:
                                         dotDomain, NSHTTPCookieDomain,
                                         @"iPad", NSHTTPCookieName,
                                         @"/", NSHTTPCookiePath,
                                         @"1", NSHTTPCookieValue,
                                         @"2040-1-1 00:00:00 -0700", NSHTTPCookieExpires,
                                         nil];
    NSHTTPCookie*       newCookie = [NSHTTPCookie cookieWithProperties:newCookieDict];
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:newCookie];
}

// Don't block cookies, so dosespot will work
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
[cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];*

这是我的请求 HTTP 标头和响应 HTTP 标头:-

*Request HTTP Header : {
"Accept-Encoding" = gzip;
Cookie = "cookie_test=1; cookie_test=1; CAKEPHP=jkn36knqoul2f14rebb8k5h882; iPad=1";
"User-Agent" = "iPad App";

}*

**Response HTTP Header : {
Connection = "Keep-Alive";
"Content-Encoding" = gzip;
"Content-Length" = 5668;
"Content-Type" = "text/html";
Date = "Tue, 10 May 2016 13:58:14 GMT";
"Keep-Alive" = "timeout=5, max=99";
Server = "Apache/2.2.22 (Ubuntu)";
Vary = "Accept-Encoding";
"X-Powered-By" = "PHP/5.3.10-1ubuntu3.15";

}**

4

0 回答 0