首页 > AFNetWork3.0 Error Domain=NSURLErrorDomain Code=-1005。

AFNetWork3.0 Error Domain=NSURLErrorDomain Code=-1005。

网络请求失败:Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost." UserInfo={NSUnderlyingError=0x7ff218465150 {Error Domain=kCFErrorDomainCFNetwork Code=-1005 "The network connection was lost." UserInfo={NSErrorFailingURLStringKey=http://192.168.1.89:8888/shihai_snatch/v1/u/userBuyList, NSErrorFailingURLKey=http://192.168.1.89:8888/shihai_snatch/v1/u/userBuyList, _kCFStreamErrorCodeKey=-4, _kCFStreamErrorDomainKey=4, NSLocalizedDescription=The network connection was lost.}}, NSErrorFailingURLStringKey=http://192.168.1.89:8888/shihai_snatch/v1/u/userBuyList, NSErrorFailingURLKey=http://192.168.1.89:8888/shihai_snatch/v1/u/userBuyList, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-4, NSLocalizedDescription=The network connection was lost.}

经常出现这种情况 请问怎么解决


你的URL里面有特殊两个字符":",第一个":"是可以争正常识别的,第二个":"也就是端口号,不能正常识别的,所以报了URL不合法的错误。

iOS里面访问URL和浏览器直接访问有些区别,浏览器在请求时会给URL进行特殊字符编码,但是iOS开发时你就需要自己编码,NSString编码有现成的方法,如下

- (NSString *)URLEncodedString:(NSString*)resource {
    CFStringRef url = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)resource, NULL, CFSTR("!*'();:@&=+$,/?%#[]"), kCFStringEncodingUTF8); // for some reason, releasing this is disasterous
    NSString *result = (__bridge NSString *)url;
    //    [result autorelease];
    return result;
}

请在拼装NSURL前,将NSString地址编码。
这样就会把URL中的特殊字符!*'();:@&=+$,/?%#[]转换成对应的%形式编码,才能正常请求。

希望能够帮到你,祝你好运。


这看着就是网断了……或者服务器关了……

【热门文章】
【热门文章】