0 votes

L'ASIHTTPRequest n'est pas asynchrone ?

J'utilise ASIHTTPRequest pour récupérer des données d'un service web.

Je fais des demandes en utilisant une boucle.

Le problème est que la requête ne semble pas être asynchrone et que mon indicateur d'activité ne fonctionne pas.

Est-il vrai que ASIHTTPRequest n'est pas asynchrone ?

ou dois-je utiliser le nsmutablerequest normal pour effectuer une requête asynchrone .

2voto

Henrik P. Hessel Points 22046

Vous devez placer votre demande dans une file d'attente de téléchargement, c'est-à-dire

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];    

Juste

[request startAsynchronous]; 

exécute la requête sur le thread de l'interface utilisateur, vous devriez donc l'essayer avec la file d'attente de téléchargement.

0voto

kamleshwar Points 1319

Pour Sync Synchrone

  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];
  }

Création d'une requête asynchrone

- (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];
}

Et il y a beaucoup d'autres options comme la file d'attente et bien d'autres encore.

Vous pouvez vous référer http://allseeing-i.com/ASIHTTPRequest/How-to-use

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X