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 等效于 AFHTTPRequestOperationManager
是 AFHTTPSessionManager
。
所以你应该在 webView 本身上使用它:
webView.sessionManager.securityPolicy.allowInvalidCertificates = YES;
当然另一种解决方案是修复服务器上的无效证书。
【讨论】:
【参考方案2】:你可以的,
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.securityPolicy.allowInvalidCertificates = YES;
参考:AFNetworking
【讨论】:
这不起作用,因为[AFHTTPSessionManager manager]
创建了一个未链接到网络视图的新管理器。
我刚刚给出了选项而不是AFHTTPRequestOperationManager
,因为OP
要求AFHTTPRequestOperationManager
在AFNetwrking 3.0
中不可用!! OP 要求根据所有请求设置安全策略!所以他/她可以使用AFHTTPSessionManager
作为单身人士!
[AFHTTPSessionManager manager]
确实不返回单例,它创建了一个新的会话管理器对象。
是的,但我们只能创建一次会话管理器对象,也可以作为单例工作!以上是关于UIWebView+AF网络问题的主要内容,如果未能解决你的问题,请参考以下文章