Как POST API значение и вернуть данные? - PullRequest
0 голосов
/ 19 ноября 2018

Я хочу отправить POST API на сервер и получить возвращаемое значение, как я могу это сделать?

 NSURLSessionConfiguration *defaultSessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
        NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration:defaultSessionConfiguration];

        // Setup the request with URL
        NSString *strurl3=[NSString stringWithFormat: @"%@/product/product_id",APIDomainURL];

        NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] init];
                [urlRequest setURL:[NSURL URLWithString:strurl3]];
                [urlRequest setHTTPMethod:@"POST"];
                [urlRequest addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];


        // Convert POST string parameters to data using UTF8 Encoding
        NSDictionary *postDict3 = @{@"product_id":_productID,@"code":[[NSUserDefaults standardUserDefaults] stringForKey:@"selectedCountry"]};
        NSData *postData = [NSJSONSerialization dataWithJSONObject:postDict3 options:0 error:nil];
        [urlRequest setHTTPBody:postData];


        // Create dataTask
        NSURLSessionDataTask *dataTask = [defaultSession dataTaskWithRequest:urlRequest completionHandler:^(NSData *data3, NSURLResponse *response, NSError *error) {
            // Handle your response here
             NSLog(@"Get value here:%@", response);
        }];

        // Fire the request
        [dataTask resume];

Пожалуйста, помогите.Спасибо.

Отредактировал мой код, как указано выше, но я все еще получаю "ноль" в ответ, любая идея?

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Наконец, я получаю ответ как показано ниже: -

NSMutableURLRequest *urlRequest = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@/product/product_id",APIDomainURL]]];

        NSString *userUpdate =[NSString stringWithFormat:@"product_id=%@&code=%@",_productID,[[NSUserDefaults standardUserDefaults] stringForKey:@"selectedCountry"], nil];

        [urlRequest setHTTPMethod:@"POST"];

        NSData *data1 = [userUpdate dataUsingEncoding:NSUTF8StringEncoding];
        [urlRequest setHTTPBody:data1];

        NSURLSession *session = [NSURLSession sharedSession];
        NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:urlRequest completionHandler:^(NSData *data2, NSURLResponse *response, NSError *error) {
            NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
            if(httpResponse.statusCode == 200)
            {
                NSError *parseError = nil;
                productHistoryAry = [NSJSONSerialization JSONObjectWithData:data2 options:0 error:&parseError];
                NSLog(@"Get value here:%@", productHistoryAry);       
            }
            else
            {
                 // Error           
            }
        }];
        [dataTask resume];
0 голосов
/ 19 ноября 2018

Вы просто создаете URL-запрос, и этого недостаточно. Вы должны создать URLConnection (для ранней версии ios) или URLSession, чтобы опубликовать его. Но я рекомендую вам использовать AFNetworking, который обернул процесс для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...