Создание параметров запроса URL из объектов NSDictionary в ObjectiveC - PullRequest
89 голосов
/ 05 апреля 2009

Поскольку все объекты обработки URL-адресов лежат в стандартных библиотеках Какао (NSURL, NSMutableURL, NSMutableURLRequest и т. Д.), Я знаю, что должен упустить простой способ программно составить запрос GET.

В настоящее время я добавляю вручную "?" за которыми следуют пары «имя-значение», соединенные знаком «&», но все мои пары «имя-значение» необходимо кодировать вручную, чтобы NSMutableURLRequest не завершался сбоем полностью при попытке подключения к URL-адресу.

Это похоже на то, что я должен быть в состоянии использовать предварительно запеченный API для .... Есть ли что-нибудь из коробки, чтобы добавить NSDictionary параметров запроса в NSURL? Есть ли другой способ, которым я должен подойти к этому?

Ответы [ 12 ]

1 голос
/ 09 июня 2017

Простой способ преобразования NSDictionary в строку запроса URL в Objective-c

Пример: first_name = Steve & middle_name = Gates & last_name = Работа и адрес = Пало-Альто, Калифорния

    NSDictionary *sampleDictionary = @{@"first_name"         : @"Steve",
                                     @"middle_name"          : @"Gates",
                                     @"last_name"            : @"Jobs",
                                     @"address"              : @"Palo Alto, California"};

    NSMutableString *resultString = [NSMutableString string];
            for (NSString* key in [sampleDictionary allKeys]){
                if ([resultString length]>0)
                    [resultString appendString:@"&"];
                [resultString appendFormat:@"%@=%@", key, [sampleDictionary objectForKey:key]];
            }
NSLog(@"QueryString: %@", resultString);

Надеюсь поможет:)

1 голос
/ 24 марта 2016

Еще одно решение, если вы используете RestKit , в RKURLEncodedSerialization есть функция с именем RKURLEncodedStringFromDictionaryWithEncoding, которая делает именно то, что вы хотите.

...