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

网络请求失败: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中的特殊字元!*'();:@&=+$,/?%#[]轉換成對應的%形式編碼,才能正常請求。

希望能夠幫到你,祝你好運。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板