ios - AFNetWork3.0 Error Domain=NSURLErrorDomain Code=-1005。
PHP中文网
PHP中文网 2017-04-17 17:33:16
0
2
1035

网络请求失败: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.}

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

PHP中文网
PHP中文网

认证0级讲师

全部回复(2)
巴扎黑

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

刘奇

你的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中的特殊字符!*'();:@&=+$,/?%#[]转换成对应的%形式编码,才能正常请求。

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板