0

我刚开始使用 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];
4

3 回答 3

0

如果该文件在您的捆绑包中,则无需使用 MKnetworkkit。Mknetwrokkit 用于从服务器请求,而不是您可以直接获取捆绑包中的 json 文件的内容。要获取文件的内容,您可以将代码编写为

NSData *data = [NSData dataWithContentsOfFile:[NSBundle mainBundle]pathForResourece:@"blabs.json"];

您可以直接使用这些数据并对其进行解析。

于 2013-06-18T11:31:58.890 回答
0

blabs.json不是有效的网址。这就是错误的原因

于 2013-05-16T13:21:58.757 回答
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];
于 2013-05-16T13:22:25.030 回答