Данные не могут быть прочитаны, потому что они не в правильном формате.

Привет, я новичок в разработке для IOS, и я пытаюсь поместить объект JSON в URL-адрес с помощью AFHTTPSessionManager.

Но я постоянно получаю ошибку The data couldn’t be read because it isn’t in the correct format,

Может кто-нибудь помочь мне исправить это. Тпй..........................................................................

метод

- (void) registerUser: (NSString *)emailAdd compnyName:(NSString *) companyNam{

    NSMutableDictionary *userAccount = [[NSMutableDictionary alloc] init];
    [userAccount setObject:@"sighUpForm" forKey:@"$name"];
    [userAccount setObject:@"true" forKey:@"$dirty"];
    [userAccount setObject:@"false" forKey:@"$pristine"];
    [userAccount setObject:@"true" forKey:@"$valid"];
    [userAccount setObject:@"false" forKey:@"$invalid"];
    [userAccount setObject:@"false" forKey:@"$submitted"];
    [userAccount setObject:emailAdd forKey:@"$Email"];
    [userAccount setObject:companyNam forKey:@"$CompanyName"];

    NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
    [dict setObject:companyNam forKey:@"HelpdeskDomainName"];
    [dict setObject:companyNam forKey:@"CompanyName"];
    [dict setObject:[NSString stringWithFormat:@"%@ : Admin",companyNam] forKey:@"FirstName"];
    [dict setObject:@"" forKey:@"LastName"];
    [dict setObject:emailAdd forKey:@"SendTo"];
    [dict setObject:@"0" forKey:@"PreferedLanguageID"];
    [dict setObject:@"" forKey:@"AffiliateId"];
    [dict setObject:userAccount forKey:@"UserAccountModel"];
    NSLog(@"signup dicxtionary : %@", dict);

    AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
    manager.requestSerializer = [AFJSONRequestSerializer serializer];

    NSLog(@"Login dicxtionary : %@", dict);
    MBProgressHUD *hud;
    hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
    hud.label.text = @"Please wait....";
    //manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];

    [hud showAnimated:YES];
    // send user login data to hosting via AFHTTP Async Request in AFNetworking
    [manager POST:BASEURL parameters:dict progress:nil success:^(NSURLSessionTask *task, id responseObject) {

        [hud hideAnimated:YES];
        // Login response validation
        if (responseObject == [NSNull null]) {

          //  [self showErrorMessage:@"Unable to login. Please try again!" title:@"Login Failed"];
        }else {
            //NSError *error = nil;
            NSLog(@"response type : %@", NSStringFromClass([responseObject class]));
            //NSDictionary *response = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:&error];
            //[self checkResultValue:(NSDictionary *)responseObject];
        }

    } failure:^(NSURLSessionTask *task, NSError *error) {

        NSLog(@"%@", [error localizedDescription]);
    }];

}

2 ответа

Удалить строку NSLog(@"%@", [error localizedDescription]);, Строка, которая возвращается [error localizedDescription] не читается Смотрите документ Apple NSError. введите описание изображения здесь

Если вы хотите увидеть информацию об ошибке, используйте NSLog(@"%@",error.userInfo[@"NSLocalizedDescription"]);

Попробуй это

Вы должны изменить, как показано ниже:

 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];


AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer];
[serializer setStringEncoding:NSUTF8StringEncoding];

manager.requestSerializer=serializer;
manager.responseSerializer.acceptableContentTypes= [NSSet setWithObjects:@"text/html",@"application/json", nil];
Другие вопросы по тегам