UIWebView+AF网络问题

Posted

技术标签:

【中文标题】UIWebView+AF网络问题【英文标题】:UIWebView+AFNetworking issue 【发布时间】:2016-11-16 07:20:19 【问题描述】:

我使用这个代码:

webView.loadRequest(request!, progress: nil, success:  (responce, html) in
            print("\n\n\nsuccess responce = ", html)
            return html
        , failure:  (error) in
            print("\n\n\nerror = ", error)
        )

但我的服务器的 SSL 证书无效。所以我需要设置一个安全策略。在我这样做之前:

[AFHTTPRequestOperationManager manager].securityPolicy.allowInvalidCertificates = YES;

但在 AFNetworking 3 中不再有 AFHTTPRequestOperationManager 类。如何为 AFNetworking 3 中的所有请求设置安全策略?

【问题讨论】:

【参考方案1】:

AFNetworking 3 等效于 AFHTTPRequestOperationManagerAFHTTPSessionManager

所以你应该在 webView 本身上使用它:

webView.sessionManager.securityPolicy.allowInvalidCertificates = YES;

当然另一种解决方案是修复服务器上的无效证书。

【讨论】:

【参考方案2】:

你可以的,

 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
 manager.securityPolicy.allowInvalidCertificates = YES;

参考:AFNetworking

【讨论】:

这不起作用,因为[AFHTTPSessionManager manager] 创建了一个未链接到网络视图的新管理器。 我刚刚给出了选项而不是AFHTTPRequestOperationManager,因为OP 要求AFHTTPRequestOperationManagerAFNetwrking 3.0 中不可用!! OP 要求根据所有请求设置安全策略!所以他/她可以使用AFHTTPSessionManager 作为单身人士! [AFHTTPSessionManager manager] 确实返回单例,它创建了一个新的会话管理器对象。 是的,但我们只能创建一次会话管理器对象,也可以作为单例工作!

以上是关于UIWebView+AF网络问题的主要内容,如果未能解决你的问题,请参考以下文章

AF网络和缓存

IOS 网络浅析-(十二 UIWebView简介)

AF网络。检查所有操作队列的下载进度

在 UIWebView 中仅显示网页的某些尺寸

5G NGC — AF 与 NEF 网络能力开放

iphone中的网络存档