Développement iOS: Pourquoi je reçois toujours la “Une erreur de connexion s'est produite” sur la 1ère tentative, mais le succès sur la prochaine?

Je suis en utilisant le ASIHTTPRequest lib dans mon application iOS pour faire Reposante demande à mon Rails 3 web app. - Je voir un étrange et quelque peu cohérente erreur la 1ère fois que j'essaie de faire une requête POST à mon application web, mais alors la requête POST fonctionne bien le sur la deuxième tentative. L'erreur exacte est...

Error Domain=ASIHTTPRequestErrorDomain Code=1 "A connection failure occurred" UserInfo=0xb513740 {NSUnderlyingError=0xb5135a0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1005.)", NSLocalizedDescription=A connection failure occurred}

Et voici mon ASIHTTPRequest code pour faire la demande POST...

    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://myrails3app.heroku.com/tournaments/%d/register.json", tid]];
    __block ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
    [request setRequestMethod:@"POST"];
    [request addPostValue:username forKey:@"username"];

    [request setCompletionBlock:^
    {
        NSData *responseData = [request responseData];     
        NSLog(@"Success!");
    }];

    //Set the code to be called when the request fails
    [request setFailedBlock:^
     {
         NSError *error = [request error];
         NSLog(@"Error: %@", [error localizedDescription]);
     }];

    //Start the request
    [request startAsynchronous];

Il est important de mentionner que lorsque des erreurs, il les erreurs très rapidement! Aussi, pour ce que ça vaut, mon Rail 3 application que je suis en train de faire la requête POST est hébergé sur Heroku. Vos pensées?

Merci beaucoup pour votre la sagesse!

  • Peut être que l'interface réseau n'est pas actif jusqu'à ce que la première tentative, qui se réveille pour le deuxième essai?
  • Je suppose, mais depuis ce qui se passe sur les appareils iOS, ne serait pas à tous les développeurs de l'aide de l'ASIHTTPRequest lib voir ce problème?
  • Ouais, bon point.
  • Juste quelques idées: ce problème se produit lors de l'exécution de l'application dans l'émulateur ou également lorsque vous essayez sur un appareil? Voyez-vous le même comportement lorsque vous faites un synchrone demande? Si cela se produit uniquement lors de l'utilisation de demandes asynchrones, alors qu'il pourrait être intéressant de voir si l'application qui agit différemment sur un iPhone/iPad1 (processeur simple core) vs un iPad2/Émulateur (plusieurs noyaux).
  • Ce problème se produit dans le simulateur et sur l'iPhone et l'iPad. Je vais essayer de l'exécution d'une synchrone demande et d'en faire rapport.
  • J'ai essayé cela avec startSynchronous et il a échoué.
  • voir un coup sur votre ruby server pour la première tentative? Votre serveur sera de retour un 500 ou quelque chose la première fois?
  • Hey Ray, non, je ne suis pas voyant, un hit pour la première tentative. Ce que cela signifie pour vous?
  • Hey Ray, les journaux ne montrent aucun signe de la demande, même pas une réponse 500. Vos pensées?