MKNetworkOperation failWithError: неподдерживаемый URL
Я только начал использовать MKNetworkKit для своих сетевых операций, и я попытался просто получить некоторые данные с сервера, используя эти MKNetworkOperation, но это сделало меня странной ошибкой... действительно странной, на которой: Неподдерживаемый URL, я много искал по этой проблеме, но нет надежды, я никогда не пробовал эту ошибку раньше, и у меня было старое приложение, которое использует ту же библиотеку с тем же примером без ошибок, посмотрите на это для расследования ошибок:
NSString *path =[NSString stringWithFormat:@"blabs.json"];
MKNetworkOperation *op =[[MKNetworkOperation alloc]initWithURLString:path params:nil httpMethod:@"GET"];
NSLog(@"%@",[op url]);
[op addCompletionHandler:^(MKNetworkOperation *CompletedOperation){
completionHandler([CompletedOperation responseJSON]);
} errorHandler:^(MKNetworkOperation *CompleteOperation, NSError *err){
errHandler(err,[CompleteOperation responseString]);
}];
[self enqueueOperation:op forceReload:YES];
3 ответа
Вам также нужно экранировать не-ASCII символы в вашем URL:
NSString *path =[NSString stringWithFormat:@"blabs.json"];
NSString* pathEncoded = [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
MKNetworkOperation *op =[[MKNetworkOperation alloc]initWithURLString:pathEncoded params:nil httpMethod:@"GET"];
NSLog(@"%@",[op url]);
[op addCompletionHandler:^(MKNetworkOperation *CompletedOperation){
completionHandler([CompletedOperation responseJSON]);
} errorHandler:^(MKNetworkOperation *CompleteOperation, NSError *err){
errHandler(err,[CompleteOperation responseString]);
}];
[self enqueueOperation:op forceReload:YES];
Если этот файл находится внутри вашего комплекта, нет необходимости использовать MKnetworkkit. Mknetwrokkit предназначен для запроса с сервера, вместо этого вы можете напрямую получить содержимое файла json, который находится в вашем комплекте. Для получения содержимого файла вы можете написать код в виде
NSData *data = [NSData dataWithContentsOfFile:[NSBundle mainBundle]pathForResourece:@"blabs.json"];
Эти данные вы можете напрямую использовать и анализировать.