Bonjour,
je fais appel à un web service renvoyant du PDF (header application/pdf).

En utilisant un client Jersey,
je fais comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
			// Appel Web Service récup des docs PDF
			ClientConfig config = new DefaultClientConfig();
			Client client = Client.create(config);
			WebResource service = client.resource(getBaseURIPdf());
 
			MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
			queryParams.add("refdoc", "1874");
			String response = service.queryParams(queryParams).accept("application/pdf").get(String.class);
			return response;
En passant en debug, je vois bien les octets du pdf dans ma variable mais lorsque je veux l'enregistrer sur disque, j'ai bien un document PDF de 2 pages mais vierge comme si des données avaient été supprimées :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
		// Sauvegarde du pdf sur disque
		try
		{
 
			byte[] bytearray = pdf.getBytes();
			FileOutputStream fileoutputstream = new FileOutputStream("D:/Test/doc.pdf");
		    fileoutputstream.write(bytearray);
		    fileoutputstream.close();		
		}
		catch (Exception e)
		{
			String msd = e.getMessage();
		}
La variable pdf étant le résultat de la méthode plus haut.

Jersey me renvoie automatiquement un objet de type String (la méthode get est faite comme ceci) mais je n'arrive pas à enregistrer le pdf contenu dans ma String correctement. Y'aurai-il une opération de conversion/charset à faire svp ?
Merci