Bonjour à tous,
je suis en train de développer un client HTTP en Java (parce que la classe HttpURLConnection ne me plaît pas).
J'envoie donc une requête à un serveur apache (get ou post) qui me renvoie une réponse avec la ressource demandée (un fichier html par exemple).
Je récupère ce fichier grâce à une fonction "saveIntoFile()" qui utilise la fonction read de la classe DataIntputStream. Voici ma boucle while qui lit mon flux entrant :
Tant que la fonction read retourne autre chose que -1, tout fonctionne correctement. Dès lors qu'elle retourne -1 (c'est-à-dire qu'il n'y a plus rien à lire), il se passe bien 3 secondes avant de sortir de la boucle !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 byte[] buff = new byte[bufferSize]; int readBytesNb; byte[] readBytes; while ((readBytesNb = reader.read(buff, 0, bufferSize)) != -1) { if (readBytesNb == bufferSize) { writer.write(buff); } else { readBytes = new byte[readBytesNb]; System.arraycopy(buff, 0, readBytes, 0, readBytesNb); writer.write(readBytes); } }
Je ne comprends absolument pas d'où peut provenir ce délai beaucoup trop long à mon goût, constant quelque soit la taille du fichier.
Quelqu'un aurait-il une idée ?![]()
Partager