2011-07-20 4 views
1

J'essaie de réutiliser une connexion dans Android, et une recherche rapide Google trouve cela: http://foo.jasonhudgins.com/2010/03/http-connections-revisited.htmlRéutiliser une connexion HTTP dans Android

Cependant, j'ai essayé, et si j'utiliser quelque chose comme Wireshark, je peut voir que je reçois toujours HTTP FIN-ACK après chacun des trois appels consécutifs, en outre, les appels HTTP vont à différents ports.

Des idées sur ce que je pourrais faire de mal ici?

+0

ports différents au serveur ou local sortant ports? Que voulez-vous dire par les appels http vont à différents ports? Et qu'est-ce qui importe si cela passe par d'autres ports tant que la connexion est établie? –

+0

si les appels vont à différents ports, alors ce n'est pas la même connexion, non? et HTTP FIN-ACK signifie que le client a dit qu'il est fini avec cette connexion .... ou est-ce que je ne comprends pas cela correctement? – user645402

+1

Correct. Est-ce que cela affecte votre application ou est-ce contre certaines exigences? Peut-être que la connexion est fermée (terminée) en raison d'une certaine durée de séjour du serveur, ou pour toute autre raison. Je pense que ce n'est pas pertinent tant que votre application ou les performances de votre application ne sont pas affectées: D –

Répondre

1

Si vous souhaitez utiliser une connexion persistante au serveur, vous devez ajouter une demande de keep-alive à votre objet URLConnection comme ceci:

myURLConnection.setRequestProperty("connection", "Keep-Alive"); 

See here

+0

J'ai effectivement vérifié que cela fonctionne pour URLConnection, mais comment puis-je faire l'équivalent de cela en utilisant DefaultHttpClient/HTTPClient? – user645402

+0

httpclient.getConnectionManager(). ReleaseConnection (conn, validDuration, timeUnit) vous pouvez spécifier combien de temps vous voulez que la connexion soit active –

+1

d'où puis-je obtenir un conn? – user645402