ASIHttpRequest - как преобразовать NSDictionary из параметров в строку параметров запроса в кодировке URL? - PullRequest
0 голосов
/ 15 августа 2011

Каков предпочтительный способ сделать запрос GET с ASIHttpRequest, используя параметры запроса, предоставленные как NSDictionary. Как я могу получить из NSDictionary * params
в? param1 = значение1 & param2 = значение2 (в процентах)

Очевидно, что я могу создать часть запроса URL-адреса вручную, но, похоже, есть лучший способ.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 15 августа 2011

Вы должны передать строку запроса как часть URL.Из интерфейса ASIHTTPRequest на GitHub :

// The url for this operation, should include GET params in the query string where appropriate
NSURL *url; 

Если вы не хотите использовать свой собственный метод словаря-строки запроса, посмотрите на GTMNSDictionary+URLArguments категория в Google Toolbox для Mac ( .h , .m ).Он добавляет метод gtm_httpArgumentString к NSDictionary, который должен быть тем, к чему вы стремитесь.

3 голосов
/ 15 августа 2011

Я не использую ASIHTTPRequest, но у меня есть аналогичная потребность в URLRequest, который я делаю.Вот что я делаю:

- (NSString *) createParamString 
{
    NSDictionary *params = // build up the param dictionary    
    NSString *result = @"";
    id key;
    NSEnumerator *enumerator = [params keyEnumerator];
    while (key = [enumerator nextObject]) {
        result = [result stringByAppendingFormat:@"%@=%@&", key, [params objectForKey:key]];
    }
    result = [result substringToIndex:[result length] - 2];
    return [result stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
}

Не уверен, идеально ли это подходит для всех ситуаций, но он работает достаточно хорошо для меня

...