在IOS網(wǎng)絡(luò)層中這里使用AFNetworking3.0處理态坦。
http的情況下 直接使用AFNetworking請(qǐng)求,不做任何處理的的會(huì)無(wú)法訪問(wèn)成功錯(cuò)誤提示是 "Error Domain=com.alamofire.error.serialization.response Code=-1011"副硅。
要解決 http 地址替換域名只需要在http header加上 host 就可以了。代碼如下
//測(cè)試地址是無(wú)效,只是未來(lái)演示
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情況下這里一種簡(jiǎn)單的解決方式
securityPolicy.validatesDomainName = NO; 即可
AFNetworking默認(rèn)validatesDomainName 是YES歹垫。
另一種方式是 在 AFNetworking 的源碼上修改
AFSecurityPolicy.m文件中的
-
(BOOL)evaluateServerTrust:(SecTrustRef)serverTrust
forDomain:(NSString *)domain {if ( [@"domian" isEqualToString:自己的公司的域名的地址] ) return YES; //AFNetworking 的原生代碼 ******* *******等
}
大概就是以上2種解決方式剥汤。