2012-06-04 4 views
3

Je comprends que le projet ASIHTTPRequest est abandonné par Ben, mais de toute façon il est maintenant trop tard pour que je passe à autre chose, alors j'ai décidé d'essayer de résoudre le problème que j'ai.Problème avec ASIHTTPRequest

Je suis POSTing et une requête avec protocole https. J'ai désactivé la connexion de persistance sur demande.

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
    [request setUseKeychainPersistence:YES]; 
    [request setShouldAttemptPersistentConnection:YES]; 

    // Set the request timeout 
    [request setTimeOutSeconds:REQUEST_TIME_OUT]; 


    // Upload an image 
    NSData *imageData = UIImagePNGRepresentation(imageContainer.mImage); 
    [request setPostBody:[NSMutableData dataWithData:imageData]];; 

    [request setDelegate:self]; 
    [request setDidFinishSelector:@selector(uploadRequestFinished:)]; 
    [request setDidFailSelector:@selector(uploadRequestFailed:)]; 
    [request startAsynchronous]; 

Et tout ce que je veux A connection failure occurred avec le kCFErrorDomainCFNetwork error -1005.

J'ai permis à toutes les informations DEBUG dans configs du projet ASIHTTPRequest et ont obtenu journal suivant

[STATUS] Starting asynchronous request <ASIFormDataRequest: 0x1029e000> 
[CONNECTION] Request <ASIFormDataRequest: 0x1029e000> will not use a persistent connection 
[THROTTLING] ===Used: 0 bytes of bandwidth in last measurement period=== 
[THROTTLING] ===Used: 327680 bytes of bandwidth in last measurement period=== 
[CONNECTION] Request attempted to use connection #(null), but it has been closed - will retry with a new connection 
[CONNECTION] Request <ASIFormDataRequest: 0x1029e000> will not use a persistent connection 
[THROTTLING] ===Used: 229376 bytes of bandwidth in last measurement period=== 
[THROTTLING] ===Used: 360448 bytes of bandwidth in last measurement period=== 
[CONNECTION] Request attempted to use connection #(null), but it has been closed - we have already retried with a new connection, so we must give up[STATUS] Request <ASIFormDataRequest: 0x1029e000>: Failed 
[CONNECTION] Request #(null) failed and will invalidate connection #(null)ata upload failed "Error Domain=ASIHTTPRequestErrorDomain Code=1 "A connection failure occurred" UserInfo=0xf624750 {NSUnderlyingError=0xf6246f0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1005.)" 

Toutes les idées pourquoi l'accident se produit? et comment résoudre ce problème?

+0

Veuillez ajouter le code qui provoque cette erreur. De l'erreur seule est difficile de trouver le problème. – Manuel

+0

Mettez à jour le message avec le code, mais son appel vraiment très standard je suppose. – deimus

+2

L'erreur [1005] (https://developer.apple.com/library/mac/#documentation/Networking/Reference/CFNetworkErrors/Reference/reference.html#//apple_ref/doc/c_ref/kCFURLErrorNetworkConnectionLost) peut signifier que le hôte vous vous connectez avec a fermé la connexion ou vous vous connectez est vraiment mauvais. Est-ce que l'hôte a un certificat autodidacte? – rckoenes

Répondre

0

Les gars merci d'essayer d'aider.

Je viens de me douter que le problème venait du côté serveur. Qui a refusé d'accepter des données plus grandes disons 800K.

Merci beaucoup

2

J'ai eu le même problème il y a plusieurs mois. Les connexions Internet ne sont pas garanties et vous trouverez cette erreur plus courante sur une connexion 3G. Ma solution était d'augmenter le nombre de tentatives. À l'intérieur de ASIHTTPRequest.m modifier le nombre de tentatives à au moins 5 et voir si cela aide.

- (BOOL)retryUsingNewConnection 
{ 
    if ([self retryCount] < 5) { 

La raison pour laquelle cela fonctionne est parce que l'erreur -1005 est pris dans -handleStreamError la connexion est rejugé autant de fois que autorisés dans le code ci-dessus.