Error Domain=NSURLErrorDomain Code=-1003 "A server with the specified hostname could not be found." UserInfo=0x168d9430 {NSErrorFailingURLStringKey=http://www.cndoa.com/server/service/get_shop_nearby.php, NSErrorFailingURLKey=http://www.cndoa.com/server/service/get_shop_nearby.php, NSLocalizedDescription=A server with the specified hostname could not be found., NSUnderlyingError=0x16840e10 "A server with the specified hostname could not be found.}
當(dāng)iPhone將wifi的DNS設(shè)置為114.114.114.114時(shí), 每過1~2小時(shí),在請(qǐng)求服務(wù)器時(shí)就會(huì)出現(xiàn)以上錯(cuò)誤, 由于這個(gè)錯(cuò)誤, 蘋果連續(xù)拒絕了我們的App兩次,這個(gè)問題是DNS的域名解析錯(cuò)誤, 安卓訪問都沒問題, 但是iPhone總會(huì)報(bào)這個(gè)錯(cuò)誤,我用的AFNetworking3.1(這個(gè)問題和什么網(wǎng)絡(luò)請(qǐng)求是沒關(guān)系的), 和服務(wù)端也沒什么關(guān)系, 以我目前的了解,和前端的關(guān)系也不大, 只是前端可以做一些補(bǔ)救措施.目前, 我做了以下的處理,App本周已成功上線了. 當(dāng)你遇到-1003錯(cuò)誤時(shí),改用ip再訪問一下服務(wù)器
AFHTTPSessionManager *session = [AFHTTPSessionManager manager];
session.requestSerializer = [AFJSONRequestSerializer serializer];
session.responseSerializer = [AFHTTPResponseSerializer serializer];
// 域名請(qǐng)求
NSString *urlStr = @"https://github.com/user/12345678";
[session GET:urlStr parameters:nil progress:^(NSProgress * _Nonnull uploadProgress) {
// nil
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
// 域名請(qǐng)求成功, 處理數(shù)據(jù)
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
// 域名請(qǐng)求失敗
if (error.code == -1003) {
// 找不到指定域名的主機(jī), 通常為域名解析錯(cuò)誤, 改為ip訪問
NSString *ipUrl = @"https://192.23.59.136/user/12345678";
AFHTTPSessionManager *ipSession = [AFHTTPSessionManager manager];
ipSession.requestSerializer = [AFJSONRequestSerializer serializer];
ipSession.responseSerializer = [AFHTTPResponseSerializer serializer];
[ipSession GET:ipUrl parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
//nil
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
// ip請(qǐng)求成功, 處理數(shù)據(jù)
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
// ip請(qǐng)求失敗
}];
}
}];
總結(jié): 遇到這個(gè)DNS的域名解析錯(cuò)誤的問題時(shí), 可以使用該方式繞過DNS的域名解析, 而直接使用ip訪問,期待以后能有更加完善的解決方案, 能和大家多討論,分享.