こんにちはiamはIOS開発には新しく、AFHTTPSessionManagerを使用してJSONオブジェクトをURLにPOSTしようとしています。正しい形式でないため、データを読み取ることができませんでした。-objective c
しかし、私は継続的にエラー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]);
}];
}
を使用して、エラー情報を参照し、同じパラメータを入れたい場合は、それが動作するのでしょうか?現在のJSONパラメータをPOSTMANで使用するには、 '[[NSString alloc] initWithData:[NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:nil] encoding:NSUTF8StringEncoding]'を使用できます。それはその後動作しますか? – Larme
ヘッダーを追加しようとしました。あなたの問題を解決するかもしれません。 @Larme tnx。 –
私はそれがうまく動作する投稿男とチェックします。 **** [NSJSONSerialization dataWithJSONObject:options:error:]:JSONの無効な最上位型write''がこのエラーを受け取ります。 –