Tu dois mettre un timeout maximum, et gérer dans ton client le cas ou tu n'obtiens rien une fois le timeout passé. Tu dois faire des tests et calculer le temps moyen de réponse du serveur, puis augmenter un peu la valeur et tu obtiens ton timeout. Il n'y a pas de règle, c'est à toi d'expérimenter.
Qu'est-ce qui bloque ? Donne l'erreur !Citation:
J'ai une question sur les string qui me gène.
J'essaie de lire le fichier qui résulte de la requête et comme mon fichier est de 5 Mo alors ça bloque je me demande est ce que une variable String est de taille limite ?
La taille de la chaîne est fonction de la mémoire allouée à la JVM.
Ne JAMAIS faire comme ça ! La concaténation de chaîne construit de nouvelles instances à chaque fois, c'est très consommateur !Citation:
voilà le code de lecture que j'utilise :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public static String lire (String path) { BufferedReader lect ; String tmp = ""; try { lect = new BufferedReader(new FileReader(path)) ; while (lect.ready()==true) { tmp += lect.readLine() ; }//while }//try catch (NullPointerException a) { System.out.println("Erreur : pointeur null"); } catch (IOException a) { System.out.println("Problème d'IO"); } return tmp; }//lecture
Tu dois utiliser un StringBuilder avec la méthode StringBuilder.append().
Mais l'idéal serait encore de lire par tableau de byte avec java.io.BufferedInputStream.read(byte[], int, int), tu n'aurais ainsi aucune conversion.
Quel traitement fais-tu avec cette chaîne ? Peut-être que tu n'as pas besoin de tout stocker avant de faire un traitement ?

