MKNetworkkit: извлечение JSONArray с сервера
Я использую MKNewtworkkit для работы в сети - это мое приложение ios. У меня есть JSONInterface на сервере, через который я могу получить JSONArray. Я могу получить данные в приложении и браузере Android, но когда я пытаюсь получить данные с помощью MKNetworkkit, [completeOperation responseJSON] возвращает ноль. Не могли бы вы мне помочь
MKNetworkEngine *network_engine= [[MKNetworkEngine alloc] initWithHostName:@"****.com"];
NSMutableDictionary* params=[[NSMutableDictionary alloc] initWithCapacity:3];
[params setObject:[self.userName text] forKey:@"user"];
[params setObject:[self.password text] forKey:@"password"];
[params setObject:@" " forKey:@"meters"];
MKNetworkOperation* operation =[network_engine operationWithPath:@"q/out" params:params httpMethod:@"GET" ssl:NO];
[operation onCompletion:^(MKNetworkOperation *completedOperation) {
NSLog(@"response: %@",[completedOperation responseString]);
@try {
NSArray *data_array=[completedOperation responseJSON];
for (int i=0; i<[data_array count]; i++) {
NSDictionary *dict=[data_array objectAtIndex:i];
NSString *id=[dict valueForKey:@"mid"];
NSString *location=[dict valueForKey:@"location"];
NSLog(@"id:%@ , location:%@",id,location);
}
}
@catch (NSException *exception) {
NSLog(@"Exception: %@",[exception name]);
}
} onError:^(NSError *error) {
NSLog(@"Couldn't make network call");
}];
[network_engine enqueueOperation:operation];
1 ответ
Я знаю, что это старый пост, но в случае, если кто-то еще сталкивается с этим...
Похоже, что вы используете "responseJSON" как NSArray, но это должен быть NSDictionary.
Это работает для меня ->
MKNetworkOperation *op = [mkNetworkEngine operationWithURLString:CONFIG_FILE_URL];
[op setShouldNotCacheResponse:YES];
[op addCompletionHandler:^(MKNetworkOperation *completedOperation) {
NSLog(@"** Success downloading config file...");
NSDictionary* responseJSON = completedOperation.responseJSON;
} errorHandler:^(MKNetworkOperation *completedOperation, NSError *error) {
NSLog(@"** Failed downloading config file - error: %@",error);
}];
[mkNetworkEngine enqueueOperation:op];