搜索

首页  >  问答  >  正文

ios - 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.}

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

PHP中文网PHP中文网2772 天前1038

全部回复(2)我来回复

  • 巴扎黑

    巴扎黑2017-04-17 17:35:16

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

    回复
    0
  • 怪我咯

    怪我咯2017-04-17 17:35:16

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

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

    回复
    0
  • 取消回复