Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios MKNetworkOperation失败错误:不支持的URL_Ios_Url_Network Programming_Mknetworkkit_Mknetworkengine - Fatal编程技术网

Ios MKNetworkOperation失败错误:不支持的URL

Ios MKNetworkOperation失败错误:不支持的URL,ios,url,network-programming,mknetworkkit,mknetworkengine,Ios,Url,Network Programming,Mknetworkkit,Mknetworkengine,我刚开始使用MKNetworkKit进行网络操作,我尝试使用这些MKNetworkOperation从服务器上获取一些数据,但这给我带来了一个奇怪的错误。。非常奇怪的是:不受支持的URL,我在这个问题上搜索了很多,但没有希望,我以前从未尝试过这个错误,我有一个旧的应用程序,使用相同的库和相同的示例,没有错误,请查看此错误调查: NSString *path =[NSString stringWithFormat:@"blabs.json"]; MKNetworkOperation *op

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

blabs.json
不是有效的url。这就是出现错误的原因。

您还需要转义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];

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

NSData*data=[NSData dataWithContentsOfFile:[NSBundle mainBundle]pathforresourcerece:@“blabs.json”]

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