IOS中的POST方法问题

时间:2017-08-02 07:08:31

标签: ios objective-c nsurlsession

我有一个用户表单。填写后,用户单击提交按钮,其数据将提交给服务器。我遇到一个问题,我得到响应null但是我的表单中的数据已成功提交给服务器。我不知道问题出在哪里。如果响应成真,我想运行另一个函数。我的代码是这样的:

    NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration];
    NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration: defaultConfigObject delegate: nil delegateQueue: [NSOperationQueue mainQueue]];

    NSString *urlLinkA=@"My URL";


    NSURL * url = [NSURL URLWithString:urlLinkA];

    NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:url];

    NSString *parameters = [NSString stringWithFormat:@"%@",Parameter];


    NSLog(@"parameter %@",parameters);
    [urlRequest setHTTPMethod:@"POST"];

    [urlRequest setHTTPBody:[parameters dataUsingEncoding:NSUTF8StringEncoding]];

    NSURLSessionDataTask * dataTask =[defaultSession dataTaskWithRequest:urlRequest
                                                       completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                           [_indicator stopAnimating];
                                                           _indicator.hidden=YES;
                                                           NSLog(@"Response:%@ %@\n", response, error);

                                                           NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];

                                                           NSLog(@"DDD %@",dictionary);

                                                           NSString *userid = [dictionary valueForKey:@"property_id"];
                                                           NSLog(@"UserID: %@", userid);



                                                           NSLog(@"Response: %@", dictionary);

                                                           if ([dictionary isEqual:@""]) {
                                                               [self Images];
                                                           }

                                                           HomePageViewController *presales = [self.storyboard instantiateViewControllerWithIdentifier:@"HomeViewController"];
                                                           [self.navigationController pushViewController:presales animated:YES];

                                                           NSString *msg=@"Successfully Registered";

                                                           UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Success"
                                                                                                                          message:msg
                                                                                                                   preferredStyle:UIAlertControllerStyleAlert];

                                                           [self presentViewController:alert animated:YES completion:nil];

                                                           int duration = 2; // duration in seconds

                                                           dispatch_after(dispatch_time(DISPATCH_TIME_NOW, duration * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
                                                               [alert dismissViewControllerAnimated:YES completion:nil];
                                                           });

                                                       }];


    NSLog(@"network error :");
    [dataTask resume];
}

1 个答案:

答案 0 :(得分:1)

请在浏览器中尝试邮递员或RestClient并调试您的帖子请求,服务器可能没有向您发送正确的响应。你可以从https://restlet.com这里下载。