iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – UIWebview启用cookie大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图通过UIWebView访问需要cookie的特定URL,但我无法访问它,因为cookie被禁用.所以@R_991_10673@下事情:

>已启用的Cookie:

NShttpCookieStorage *cookieStorage = [NShttpCookieStorage sharedhttpCookieStorage];

[cookieStorage setCookieAcceptPolicy:NShttpCookieAcceptPolicyAlways];

>创建NSURLConnection并从响应中提取cookie:

NSArray *cookies = [ NShttpCookie cookiesWithResponseHeaderFields: [ httpResponse allHeaderFields ] forURL:response.URL];

[[NShttpCookieStorage sharedhttpCookieStorage] setCookies: cookies forURL: response.URL mainDocumentURL:nil];

但这都没有帮助.但是,如果我在safari中启动URL,它会成功加载,之后我也可以在UIWebView中加载相同的URl.你能帮我解决这个问题,我该如何为UIWebView启用cookie?

提前致谢

解决方法

创建NSURLrequest后,将sharedhttpCookieStorage中的所有cookie复制到NSURLrequest:

NSArray *cookies = [[NShttpCookieStorage sharedhttpCookieStorage] cookies];

NSMutableURLrequest *request = [NSMutableURLrequest requestWithURL:url];
[request sethttpShouldHandleCookies:YES];
[self addCookies:cookies forrequest:request];
[_webView loadrequest:request];

添加addCookies:forrequest方法

- (void)addCookies:(NSArray *)cookies forrequest:(NSMutableURLrequest *)request
{
    if ([cookies count] > 0)
    {
        NShttpCookie *cookie;
        NSString *cookieHeader = nil;
        for (cookie in cookies)
        {
            if (!cookieHeader)
            {
                cookieHeader = [NSString StringWithFormat: @"%@=%@",[cookie name],[cookie value]];
            }
            else
            {
                cookieHeader = [NSString StringWithFormat: @"%@; %@=%@",cookieHeader,[cookie value]];
            }
        }
        if (cookieHeader)
        {
            [request SETVALue:cookieHeader forhttpHeaderField:@"Cookie"];
        }
    }
}

大佬总结

以上是大佬教程为你收集整理的ios – UIWebview启用cookie全部内容,希望文章能够帮你解决ios – UIWebview启用cookie所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。