我刚开始使用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];
答案 0 :(得分:0)
blabs.json
不是有效的网址。这就是错误
答案 1 :(得分:0)
您还需要转义URL中的非ASCII字符:
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];
答案 2 :(得分:0)
如果该文件在您的包中,则无需使用MKnetworkkit。 Mknetwrokkit用于从服务器请求而不是您可以直接获取捆绑包中的json文件的内容。要获取文件内容,您可以将代码编写为
NSData * data = [NSData dataWithContentsOfFile:[NSBundle mainBundle] pathForResourece:@“blabs.json”];
您可以直接使用此数据并对其进行解析。