2012-04-03 4 views
0

demandes avec AFNetworking:retard AFJSONRequestOperation en réponse

NSOperationQueue *queue = [[NSOperationQueue alloc] init]; 
    [queue setMaxConcurrentOperationCount:1]; 
    [queue addOperation:request1]; 
    [queue addOperation:request2]; 

Le request1 obtient sa réponse immédiatement après l'appeler. Mais deuxième demande2 reçoit une réponse avec 14 ou 16 secondes de retard après l'avoir appelé.

Le journal du serveur indique que la requête2 y est passée avec un délai de 14 à 16 secondes par rapport à l'heure du client. et il répond immédiatement. donc le serveur devrait avoir raison.

Qu'est-ce que ce pourrait être?

+0

Wireshark ou charlesproxy pour prendre une capture de ce qui se passe, qui pourrait fournir un indice. – JosephH

Répondre

1

Vous définissez maxConcurrentOperationCount sur 1 pour que votre file d'attente soit efficace. Cela signifie qu'une seule opération est exécutée à tout moment.

Probablement la première opération (request1) prend 14-16 secondes.

Si vous voulez exécuter les deux demandes en même temps augmenter la maxConcurrentOperationCount

+0

ça n'aide pas. les demandes doivent être exécutées de manière séquentielle. Et la première réaction est arrivée en quelques millisecondes. –

+0

@ phantom.dnepr Si vous avez besoin que les requêtes soient exécutées de manière séquentielle, vous devez utiliser les dépendances 'NSOperation', ou créer la seconde opération dans le bloc achèvement du premier. De toute façon, plus d'informations seraient nécessaires pour comprendre ce qui se passe afin de vous aider. Descriptions de ce que sont les demandes, les journaux des réponses qui arrivent, ce genre de chose. – mattt

Questions connexes