Как получить ответ от веб-сервиса после отправки Получить запрос в iOS - PullRequest
0 голосов
/ 25 сентября 2011

Я новичок в разработке для iOS, и у меня есть некоторые проблемы с пониманием организации веб-сервисов. Я хочу отправить запрос Get на URL. И я делаю это так:

-(BOOL) sendLoginRequest{
NSString *getAction = [NSString stringWithFormat:@"action=%@&username=%password=%@",@"login",self.log.text, self.pass.text];
NSString *getUserName = [NSString stringWithFormat:@"username=%@",self.log.text];
NSString *getPassword = [NSString stringWithFormat:@"username=%@",self.pass.text];

NSData *getDataAction = [getAction dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

NSString *getLengthAction = [NSString stringWithFormat:@"%d", [getDataAction length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];

[request setURL:[NSURL URLWithString:@"http:http://www.site.fi/api/"]];

[request setHTTPMethod:@"GET"];

[request setValue:getLengthAction forHTTPHeaderField:@"Content-Length"];

[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

[request setHTTPBody:getLengthAction];

self.urlConnection = [[[NSURLConnection alloc] initWithRequest:request delegate:self] autorelease];

NSAssert(self.urlConnection != nil, @"Failure to create URL connection.");

// show in the status bar that network activity is starting
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
}

ответ может быть "верным" или "ложным"

но как я могу принять этот ответ?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2011

Вы должны определить следующие методы, чтобы получить ответ:

  1. Начать соединение: [self.urlConnection start];

  2. Проверить ответ сервера:

    - (void)connection:(NSURLConnection *)theConnection didReceiveResponse:(NSURLResponse *)response

  3. Сбор данных, отправляемых серверами:

    - (void)connection:(NSURLConnection *)theConnection didReceiveData:(NSData *)data

  4. Обязательно исправляйте ошибки:

    - (void)connection:(NSURLConnection *)theConnection didFailWithError:(NSError *)error

  5. Проверить полученные данные:

    - (void)connectionDidFinishLoading:(NSURLConnection *)theConnection

Быть болееубедитесь, что вы правильно поняли меня, проверьте NSURLConnection Class Reference

0 голосов
/ 25 сентября 2011

Отправьте [self.urlConnection start]; и реализуйте методы NSURLConnectionDelegate для получения ответа.В качестве альтернативы используйте ASIHTTPRequest и обработчики блоков, которые, на мой взгляд, гораздо проще писать для начинающих, при условии, что вам не нужно запускаться на iOS до 4.1.как NSData;просто преобразуйте это в строку и либо вызовите boolValue для строки (проверьте документы на наличие довольно странных тестов), либо используйте определенный набор ваших собственных тестов.

...