Client Jersey : problème récupération d'un type PDF
Bonjour,
je fais appel à un web service renvoyant du PDF (header application/pdf).
En utilisant un client Jersey,
je fais comme ceci :
Code:
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:
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