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.

Tags:

Java

Rest

Jersey