Une requête ASIHTTPRequest peut-elle être réessayée?

Existe-t-il un moyen de réessayer un ASIHTTPRequest? J'utilise l'authentification personnalisée dans un service REST au lieu de l'authentification HTTP de base et je souhaite réessayer une request si la session a expiré. Appeler startAsynchronous une deuxième fois sur une request provoque une exception. Je voudrais faire quelque chose comme ceci:

[request setCompletionBlock:^{ if ([request responseStatusCode] == 500) { // try to login again in case token expired [server loginAndRetryRequest:request]; } else { // parse response } }]; 

loginAndRetryRequest: fera un autre ASIHTTPRequest pour se connecter et quand il sera terminé, il recommencera la requête d'origine à partir de CompletionBlock (en supposant que cela soit possible)?

Il devrait être possible de faire une copy de la requête puis d'exécuter à nouveau -startAsynchronous sur la copy.

La prise en charge du protocole NSCopying a été ajoutée dans la version 1.5, qui inclut également une nouvelle tentative automatique en cas de timeout (selector -setNumberOfTimesToRetryOnTimeout:

Une autre option pourrait être de vérifier leur code source pour voir comment la nouvelle tentative automatique est faite en cas de timeout, mais la copy et la réémission de la requête devraient fonctionner (c'était la raison pour laquelle le support pour NSCopying était en premier lieu).