Получить JSON от сервера (NSURLSession)

Рейтинг: 0Ответов: 1Опубликовано: 19.11.2014

Для регистрации на сайте использую NSURLSession (NSURLSessionDataTask). Адрес формируется правильно, и посылается ПОСТ запрос.

Приходит ответ от сервера 200 (ОК), но не приходит JSON.

Проверяю на утилите: Cocoa Rest Client - ответ приходит и в JSON. Что я не так делаю?

P.S. Кстати, смотрю в приложении Cocoa Rest Client, идет задержка во время запроса на 8 секунд. Может, код не успевает получить ответ от сервера (полный)?

NSString *paramsRegistrationURL = [NSString stringWithFormat:@"/register?email=&name=%@&surname=%@&phone=%@",
                                                                                                  params[0],
                                                                                                  params[1],
                                                                                                  params[2]];
    NSURLSessionConfiguration *currentSessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession *currentSession = [NSURLSession sessionWithConfiguration:currentSessionConfig];
    NSURL *mainRegistrationURL = [NSURL URLWithString:HTTPMainURL];
    NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:mainRegistrationURL];

    [urlRequest setHTTPMethod:@"POST"];
    [urlRequest setHTTPBody:[paramsRegistrationURL dataUsingEncoding:NSUTF8StringEncoding]];
    [urlRequest addValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

    NSLog(@"Method:%@ URL:%@%@", urlRequest.HTTPMethod, urlRequest.URL.absoluteString, [[NSString alloc] initWithData:[urlRequest HTTPBody] encoding:NSUTF8StringEncoding]);

    NSURLSessionDataTask *currentSessionDataTask = [currentSession dataTaskWithRequest:urlRequest
                                                    completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

                                                        NSLog(@"Response: %@ %@\n", response, error);

                                                        if (error == nil) {

                                                            NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
                                                            NSLog(@"result json: %@", jsonArray);
                                                        }
                                                    }];
    [currentSessionDataTask resume];

Ответы

Ответов пока нет.