Bonjour,

J'ai un problème très bizarre qui tourne autour de cette fonction :

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
static int timeout=500000; //5 min
	static void telechargerCookie(String url,String chemin,String cookie)
	{
		URL website = null;
		try {
			website = new URL(url);
		    URLConnection conn = website.openConnection();
		      if(fiddler4Proxy)
		      {
		    	  Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 8888));
		    	  conn = (HttpURLConnection) website.openConnection(proxy);
		      }
		      conn.setConnectTimeout(timeout);
		      conn.setReadTimeout(timeout);
		      conn.setRequestProperty( "Host", website.getHost() );
		      conn.setRequestProperty( "Accept", "application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*" );
		      conn.setRequestProperty( "Accept-Language", "fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3" );
		      conn.setRequestProperty( "Connection", "keep-alive" );
		      conn.setRequestProperty( "User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/7.0)" );
		      if(cookie!=null) conn.setRequestProperty("Cookie", cookie);
 
 
	    	ReadableByteChannel rbc = Channels.newChannel(conn.getInputStream());
 
	    	FileOutputStream fos = new FileOutputStream(chemin);
	    	fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
		} catch (MalformedURLException e) {
			e.printStackTrace();
	 		Ordonnanceur.ordonnanceur.messageDate("E1:"+e.toString()+e.getCause()+website.toString());
		} catch (FileNotFoundException e) {
			e.printStackTrace();
	 		Ordonnanceur.ordonnanceur.messageDate("E2:"+e.toString()+e.getCause());
		} catch (IOException e) {
			e.printStackTrace();
	 		Ordonnanceur.ordonnanceur.messageDate("E32:"+e.toString()+e.getCause()+website.toString());
		}
	}
Cette fonction permet de télécharger sur le disque un PDF (on transmet également un cookie d'identification).
Elle marche bien sur mon PC, mais quand c'est sur le PC de mon collègue qui travaille en hopital, on a toujours un timeout à 20 secondes. C'est d'autant plus bizarre que le timeout est défini à 5 minutes et que j'ai vérifié ça réagit bien avec ces fonctions car quand j'en mets un faible, j'ai moi aussi un timeout.
Par sécurité j'ai même défini :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
System.setProperty("sun.net.client.defaultConnectTimeout", "1000000");
		System.setProperty("sun.net.client.defaultReadTimeout", "1000000");
Mais rien n'y fait.

Alors j'ai demandé à mon ami de mettre fiddler4 en parallèle pour voir la requête et j'ai mis la variable de mon code fiddler4Proxy à true. Et là miracle la requête passe bien et la fonction marche chez lui.
Je ne comprends pas pourquoi et j'aimerais bien fixé ce problème. Ca ne serait pas une histoire de passerelle réseau qui est squizée ou qqch comme ça ?