Простейший способ использования службы REST

#objective-c #ios #rest

#objective-c #iOS #rest

Вопрос:

Какой самый простой, но не самый лучший способ использовать веб-службу REST в приложении для iPhone? Спасибо.

Ответ №1:

Лучшее, что я нашел на данный момент, заключается в следующем:

  1. Используйте очень превосходный вспомогательный класс ASIHTTPRequest от http://allseeing-i.com/ASIHTTPRequest /
  2. Используйте JSON для вашего запроса и ответа и выполняйте синтаксический анализ с помощью http://code.google.com/p/json-framework /

Я только что добавил вышеупомянутые классы в свой проект и включаю их там, где это необходимо. Затем:

 NSURL *url = @"http://example.com/rest/whatever";

// create dictionary with post data
NSMutableDictionary *requestDict = [[NSMutableDictionary alloc] init];
[requestDict setObject: Id forKey:@"Id"];
[requestDict setObject: field.text forKey:@"Name"];

//Prepare the http request
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL: url]; 
[request setRequestMethod:@"POST"];
[request addRequestHeader:@"Content-Type" value:@"raw"];
[request setPostBody: [NSMutableData dataWithData: [[[self sbjson] stringWithObject:requestDict] dataUsingEncoding:NSUTF8StringEncoding]]];
[request startSynchronous];
[requestDict release];

self.error = [request error];

if(self.error)
{
    [self performSelectorOnMainThread:@selector(serviceConnectionDidFail) withObject:nil waitUntilDone:NO];
}
else
{
    // request succeeded - parse response
    NSDictionary *responseDict = [self.sbjson objectWithString:[request responseString]];
    int value = [responseDict valueForKey:@"ServerValue"];
}
  

Это действительно простая, надежная и хорошо обрабатывающая ошибки программа.

Комментарии:

1. Большое вам спасибо. Пример выглядит простым. Но мой веб-сервис использует метод GET . Это что-то вроде этого . 85.17.168.204:8080/TunisairRESTful / ресурсы / города Приведите, пожалуйста , пример ?

2. Измените RequestMethod запроса на @»GET» и опустите PostBody. Подробнее прочитайте руководство по началу работы здесь: allseeing-i.com/ASIHTTPRequest/How-to-use

Ответ №2:

Откройте safari и перейдите по соответствующему URL-адресу сервера REST.

Комментарии:

1. Роб — Я не хочу показаться грубым, когда спрашиваю — это реальный ответ, или ты шутишь? Действительно ли это возможно? Как вы отправляете данные на сервер и как вы анализируете ответ?

2. Райан, это была наполовину шутка, но она полностью удовлетворяет заявленному вопросу OP, в котором не было указано, какие операции требуются при обмене данными с сервером REST.

3. это шутка или вы серьезно?

4. сиМонАкро, пожалуйста, не обращайте внимания на мой ответ. Я отвечал на ваш первоначальный вопрос, как указано , и хотя это правда, что самый простой , легчайший способ использования веб-службы REST из приложения для iPhone — использовать Safari для извлечения информации из опубликованного URI, я сомневаюсь, что это удовлетворит ваши потребности. Извините за путаницу.