2013-07-31 1 views
1

Вызов REST веб-сервисов достаточно прост - я использую родной класс NSURLConnection и его методы делегата:Передача параметров в REST вызовы API из Objective-C

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"webServiceURL"]]; 

    [request setHTTPMethod:@"GET"]; 

    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

Но как я передать параметры объекта на вызов? Например, если веб-служба ожидает объект UserInfo { name:string, age:int}.

Теперь этот вызов имеет только два параметра - я также думаю о возможных случаях, когда мне может потребоваться передать еще много запросов.

Каков правильный способ сделать это? Я слышал о RestKit и планирую попробовать в ближайшее время, но есть ли хороший способ без сторонних библиотек?

+0

Параметры в URL-адресе или в теле запроса? – Wain

+0

В корпусе запроса. В URL-адресе было бы хорошо, но если мне нужно передать 10 параметров, длина URL-адресов будет слишком длинной. Я попробовал '[request setValue: @" user1 "forHTTPHeaderField: @" username "] ;, но REST Web API не распознает переданные параметры. –

ответ

2

Обычно при выполнении GET вы добавляете параметры в URL-адрес. Для этого просто добавьте строку запроса в конец строки, используемой для создания URL-адреса.

Если вы делали POST, вы обычно добавляли параметры в тело запроса. Это делается путем преобразования параметров в NSData и вызова setHTTPBody: на request.

+0

Не думал, что все так просто. Благодаря! Запрос GET корректно работает с параметрами строки запроса. –

Смежные вопросы