Лучшее, что я нашел на данный момент, таково:
- Используйте превосходный класс помощника 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"];
}
Это действительно просто, надежно и хорошо обрабатывает ошибки.