在IOS网络层中这里使用AFNetworking3.0处理。
http的情况下 直接使用AFNetworking请求,不做任何处理的的会无法访问成功错误提示是 "Error Domain=com.alamofire.error.serialization.response Code=-1011"。
要解决 http 地址替换域名只需要在http header加上 host 就可以了。代码如下
//测试地址是无效,只是未来演示
NSString *baseURL = @"http://test.test.com/test"
NSString *IPURL = @"http://183.121.11.22/test"
NSURL *URL = [NSURL URLWithString: IPURL];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL];
[request setValue:@"test.test.com" forHTTPHeaderField:@"host"];
这样 http 地址替换域名就解决了。
https
https情况跟http不同这里https情况下这里一种简单的解决方式
securityPolicy.validatesDomainName = NO; 即可
AFNetworking默认validatesDomainName 是YES。
另一种方式是 在 AFNetworking 的源码上修改
AFSecurityPolicy.m文件中的
-
(BOOL)evaluateServerTrust:(SecTrustRef)serverTrust
forDomain:(NSString *)domain {if ( [@"domian" isEqualToString:自己的公司的域名的地址] ) return YES; //AFNetworking 的原生代码 ******* *******等
}
大概就是以上2种解决方式。
网友评论