我是IOS开发的新手,我正在尝试使用AFHTTPSessionManager将JSON对象发布到URL。
但是,我不断收到错误The data couldn’t be read because it isn’t in the correct format
。
有人可以帮我解决这个问题。 TNX。 .................................................. .......................
方式
- (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]);
}];
}
答案 0 :(得分:0)
试试这个
您需要更改如下:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer];
[serializer setStringEncoding:NSUTF8StringEncoding];
manager.requestSerializer=serializer;
manager.responseSerializer.acceptableContentTypes= [NSSet setWithObjects:@"text/html",@"application/json", nil];
答案 1 :(得分:0)