ios - AFNetWork3.0 Error Domain=NSURLErrorDomain Code=-1005。
PHP中文网
PHP中文网 2017-04-17 17:33:16
[iOS讨论组]

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号