Bonjour,
je fais appel à un web service renvoyant du PDF (header application/pdf).
En utilisant un client Jersey,
je fais comme ceci :
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 // 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;
La variable pdf étant le résultat de la méthode plus haut.
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(); }
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
Partager