#objective-c #ios #rest
#objective-c #iOS #rest
Вопрос:
Какой самый простой, но не самый лучший способ использовать веб-службу REST в приложении для iPhone? Спасибо.
Ответ №1:
Лучшее, что я нашел на данный момент, заключается в следующем:
- Используйте очень превосходный вспомогательный класс ASIHTTPRequest от http://allseeing-i.com/ASIHTTPRequest /
- Используйте 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, я сомневаюсь, что это удовлетворит ваши потребности. Извините за путаницу.