Разве ASIHTTPRequest не является асинхронным? - PullRequest
0 голосов
/ 09 января 2010

Я использую ASIHTTPRequest для получения некоторых данных из веб-службы.

Я делаю запросы, используя цикл.

Проблема в том, что не похоже, что запрос выполняется асинхронно, поэтому мой индикатор активности не работает.

Правда ли, что ASIHTTPRequest не является асинхронным.

или я должен использовать обычный запрос nsmutablerequest для выполнения асинхронного запроса.

Ответы [ 2 ]

2 голосов
/ 09 января 2010

Вы должны поместить свой запрос в очередь загрузки, т.е.

ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:url];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestWentWrong:)];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[queue addOperation:request];
[request release];    

Just

[request startAsynchronous]; 

выполняет запрос в потоке пользовательского интерфейса, поэтому вам следует попробовать его с очередью загрузки.

0 голосов
/ 23 февраля 2012

Для синхронной синхронизации

  NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
  ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
  [request startSynchronous];
  NSError *error = [request error];
  if (!error) {
    NSString *response = [request responseString];
  }

Создание асинхронного запроса

- (IBAction)grabURLInBackground:(id)sender
{
   NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
   ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
   [request setDelegate:self];
   [request startAsynchronous];
}

- (void)requestFinished:(ASIHTTPRequest *)request
{
   // Use when fetching text data
   NSString *responseString = [request responseString];

   // Use when fetching binary data
   NSData *responseData = [request responseData];
}

- (void)requestFailed:(ASIHTTPRequest *)request
{
   NSError *error = [request error];
}

И еще много опций, таких как Очередь и многие другие

Вы можете сослаться http://allseeing -i.com / ASIHTTPRequest / Как использовать

...