How to save a file from jersey response?
From Java 7 on, you can also make use of the new NIO API to write the input stream to a file:
InputStream is = response.readEntity(InputStream.class)
Files.copy(is, Paths.get(...));
I've finally got it to work.
I figured out reading the Jersey API that I could directly use getEntity
to retrieve the InputStream of the response
(assuming it has not been read yet).
Using getEntity
to retrieve the InputStream
and IOUtils#toByteArray
which create a byte array from an InputStream
, I managed to get it to work :
Response response = webResource.request(MediaType.APPLICATION_OCTET_STREAM)
.cookie(cookie)
.post(Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED_TYPE));
InputStream input = (InputStream)response.getEntity();
byte[] SWFByteArray = IOUtils.toByteArray(input);
FileOutputStream fos = new FileOutputStream(new File("myfile.swf"));
fos.write(SWFByteArray);
fos.flush();
fos.close();
Note that IOUtils is a common Apache function.