Bonjour,
Mon application fait une boucle pour télécharger des images sur un serveur distant et je rencontre dans un de mes execute() avec un objet de classe HTTPClient une attente infinie... C'est souvent après la deuxième ou la troisième image.
le probleme est que je ne rencontre pas tout le temps ce 'bug', il est aléatoire.
Parfois j'arrive a finir de télécharger toute les images.
Je vous donne le code de ma classe de connection :
Si quelqu'un a une idée du pourquoi du comment
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 public class Connection { private static HttpClient client = null; /** * Connection sur le site en utilisant un phpsessid connu */ public Connection() { if (client == null) { HttpParams parameters = new BasicHttpParams(); ConnManagerParams.setMaxTotalConnections(parameters, 100); SchemeRegistry schReg = new SchemeRegistry(); schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); ClientConnectionManager conMgr = new ThreadSafeClientConnManager(parameters,schReg); client = new DefaultHttpClient(conMgr, parameters); // client = new DefaultHttpClient(); } } public String executeGet(String site) { try { HttpGet get = new HttpGet(site); HttpResponse rep = client.execute(get); HttpEntity entity = rep.getEntity(); return (Tools.streamToString(entity.getContent())); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return (""); } public String executePost(String site, List <NameValuePair> nvps) { try { HttpPost post = new HttpPost(site); post.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); HttpResponse rep = client.execute(post); HttpEntity entity = rep.getEntity(); return (Tools.streamToString(entity.getContent())); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return (""); } public InputStream executeGetImage(String site) { try { Log.w("connect", "debut"); HttpGet get = new HttpGet(site); Log.w("Connect", "milieu"); HttpResponse rep = client.execute(get); Log.w("connect", "fin"); HttpEntity entity = rep.getEntity(); return (entity.getContent()); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return (null); } public void close() { client.getConnectionManager().shutdown(); client = null; } }
Ps : l'attente infinie survient lors de l'appel a executeGetImage
Partager