Как на objective-c оправить post запрос с многомерным массивом типа ключ значение?

Пользователь

от margaret , в категории: Другие , 6 месяцев назад

Как на objective-c оправить post запрос с многомерным массивом типа ключ значение?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от abel , 6 месяцев назад

@margaret 

Вот пример кода на Objective-C для отправки POST-запроса с многомерным массивом типа ключ-значение:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
NSURL *url = [NSURL URLWithString:@"http://example.com/api"]; // Замените на URL вашего сервера API

// Создаем NSMutableURLRequest для указания HTTP метода и URL
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = @"POST";

// Создаем NSDictionary с вашим многомерным массивом данных
NSDictionary *dataArray = @{
    @"key1": @"value1",
    @"key2": @"value2",
    @"key3": @{
        @"subkey1": @"subvalue1",
        @"subkey2": @"subvalue2"
    }
};

// Переводим NSDictionary в NSData
NSError *error;
NSData *requestData = [NSJSONSerialization dataWithJSONObject:dataArray options:0 error:&error];

if (requestData) {
    // Устанавливаем тело запроса
    request.HTTPBody = requestData;
    
    // Устанавливаем заголовки запроса, чтобы указать тип контента
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

    // Создаем NSURLSessionDataTask для отправки запроса
    NSURLSessionDataTask *dataTask = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        // Обрабатываем ответ от сервера
        if (error) {
            NSLog(@"Ошибка: %@", error);
        } else {
            // Преобразуем данные ответа в NSDictionary
            NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
            
            if (responseDictionary) {
                // Обрабатываем ответ от сервера
                NSLog(@"Ответ сервера: %@", responseDictionary);
            } else {
                NSLog(@"Ошибка парсинга данных ответа: %@", error);
            }
        }
    }];
    
    // Запускаем запрос
    [dataTask resume];
} else {
    NSLog(@"Ошибка конвертирования данных в JSON: %@", error);
}


Вам нужно заменить значение http://example.com/api на URL вашего сервера API и настроить собственную обработку ответа от сервера в блоке completionHandler согласно ваших потребностей.