2011-05-14 7 views
2

J'utilise ASIFormDataRequest pour envoyer des données POST en plusieurs parties à un serveur exécutant nginx + php-fpm.ASIFormDataRequest demande POST vide

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
[request setPostValue:sessionKey forKey:@"session"]; 
[request setPostValue:secret forKey:@"secret"]; 
[request setPostValue:@"test" forKey:@"description"]; 
[request setFile:filePath forKey:@"image"]; 
[request setTimeOutSeconds:120]; 
[request setDelegate:self]; 
[request startAsynchronous]; 

Cependant, une fois dans un certain temps (se produit très aléatoire, difficile à reproduire) une demande vide atteint serveur, j'utilise le même dossier pour tous les tests. ASIHTTPRequest peforms requestFinished, comme si tout allait bien.

Aucune erreur côté serveur générée, j'ai vérifié les journaux.

Quelqu'un at-il déjà eu ce problème?

+0

mis à jour votre ASIHTTPRequest au plus tard? J'ai essayé de charger manuellement le fichier puis d'envoyer le NSData au serveur? –

Répondre

7

J'ai eu ce problème trop tôt aujourd'hui. Cela a quelque chose à voir avec le comportement de nginx sur la façon de réutiliser une connexion. Une solution simple est d'ajouter simplement ce qui suit à votre procédure de demande:

[request setShouldAttemptPersistentConnection:NO]; 

Cette option a également été réglée sur NO par défaut dans la nouvelle version de ASIHTTPRequest. En savoir plus sur ce à Github:

Stop using persisted connections on POST/PUT

+0

Ça marche! Merci beaucoup! – romaonthego

+0

Merci! Cela m'a dérangé pendant un certain temps. – Cyprian