0

こんにちは、私は 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];
4

1 に答える 1