こんにちは、私は ios の初心者で、私のアプリではASIFormDataRequest
以前にサービスを統合するために使用していました
今、私はフォーマットを変更し、NSURLSession
代わりに使用していますASIFormDataRequest
ASIFormDataRequest
しかし、サーバーからの成功応答を使用してパスワードの変更を要求すると、サーバーからの応答がNSURLSession
失敗しましたが、サーバーからの失敗応答を使用すると、何が問題なのか教えてください
NSURlsession:-
def = [NSUserDefaults standardUserDefaults];
NSString *myString = [def stringForKey:@"AccesToken"];
NSString *AccessToken = [NSString stringWithFormat:@"Bearer %@",myString];
NSString *Finalstr = [NSString stringWithFormat: @"MedicaidId=%@&OldPassword=%@&NewPassword=%@&ConfirmPassword%@", medicaId,self.CurPwdTxt.text,self.NewPwdTxt.text,self.ConfPwdTxt.text];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:mainurl,BaseURL]]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[Finalstr dataUsingEncoding:NSUTF8StringEncoding]];
[request addValue:AccessToken forHTTPHeaderField:@"Authorization"];
NSURLSessionTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"dataTaskWithRequest error: %@", error);
}
else if ([response isKindOfClass:[NSHTTPURLResponse class]]) {
NSInteger statusCode = [(NSHTTPURLResponse *)response statusCode];
if (statusCode != 200) {
NSError *parseError;
id responseObject = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
NSLog(@"responseobject is %@",responseObject);
}else{
NSError *parseError;
id responseObject = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
NSLog(@"else condtion");
if (!responseObject) {
NSLog(@"JSON parse error: %@", parseError);
NSLog(@"responseobject is%@",responseObject);
} else {
NSLog(@"responseobject is %@",responseObject);
}
//if response was text/html, you might convert it to a string like so:
NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"final responseString = %@", responseString);
}
}
}];
[task resume];
}
ASIFormDataRequest:-
NSString *urlStr = [NSString stringWithFormat:@"myurl",BaseURL];
NSLog(@"urlStr --->>> %@",urlStr);
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:urlStr]];
[request setRequestMethod:@"POST"];
def = [NSUserDefaults standardUserDefaults];
NSString *myString = [def stringForKey:@"AccesToken"];
NSString *str = [NSString stringWithFormat:@"Bearer %@",myString];
NSLog(@"token is %@",str);
[request setPostValue:medicaId forKey:@"MedicaidId"];
[request setPostValue:self.CurPwdTxt.text forKey:@"OldPassword"];
[request setPostValue:self.NewPwdTxt.text forKey:@"NewPassword"];
[request setPostValue:self.ConfPwdTxt.text forKey:@"ConfirmPassword"];
[request addRequestHeader:@"Authorization" value:str];
[request setDelegate:self];
[request startAsynchronous];