Bonjour,

J'essayais de récupérer un document avec ce code :
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
try{
 
			URL url = new URL(httpURL);
 
			HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();
 
			urlConn.setRequestMethod("GET");
 
 
			int statusCode = -1;
 
			for (int attempt = 0; statusCode == -1 && attempt < 3; attempt++) {
				try {
					// execute the method.
					urlConn.connect();
					statusCode = urlConn.getResponseCode();
				} catch (Exception e) {
					throw new RuntimeException(e);
				}
			}
 
			if (statusCode == -1) {
				throw new RuntimeException("pas de réponse http : " + httpURL);
			} else {
 
				InputStream in = urlConn.getInputStream();
 
				int aByte = 0;
				ByteArrayOutputStream byas = new ByteArrayOutputStream();
				while (aByte != -1) {
					aByte = in.read();
					byas.write(aByte);
				}
 
				byas.flush();
				responseBody = byas.toByteArray();
 
				byas.close();
				in.close();
 
			}
 
 
		}
		catch (Exception e)
		{
 
 
		}

et je ne comprenais pas car le hash du document que j'envoyais ne correspondait pas au hash de ce que je recevais. Pourtant, le document s'affichait sans problème et était identique.

Puis j'ai essayé en utilisant httpclient :
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
HttpClient client = new HttpClient();
 
		HttpMethod method = new GetMethod(httpURL);
 
		int statusCode = -1;
 
		for (int attempt = 0; statusCode == -1 && attempt < 3; attempt++) {
			try {
				// execute the method.
				statusCode = client.executeMethod(method);
			} catch (Exception e) {
				throw new RuntimeException(e);
			}
		}
		// Check that we didn't run out of retries.
		if (statusCode == -1) {
			throw new RuntimeException("pas de réponse http : " + httpURL);
		} else {
			// Read the response body.
			responseBody = method.getResponseBody();
 
		}
et la, la valeurdu hash est correcte.

Quelqu'un pourrait-il m'expliquer ce comportement, ou s'il y a quelque chose que je fais mal pour la première méthode?

Merci d'avance