Jersey client to download and save file

前端 未结 4 1697
一生所求
一生所求 2021-01-18 00:00

I Am new to jersey/JAX-RS implementation. Please find below my jersey client code to download file:

 Client client = Client.create();
 WebResource wr = clien         


        
4条回答
  •  春和景丽
    2021-01-18 00:53

    For folks still looking for a solution, here is the complete code on how to save jaxrs response to a File.

    public void downloadClient(){
        Client client = ClientBuilder.newClient();
        WebTarget target = client.target("http://localhost:7070/upload-0.0.1-SNAPSHOT/rest/files/download");
    
        Response resp = target
          .request("application/pdf,image/jpeg,application/xml,application/vnd.ms-excel")
          .get();
    
        if(resp.getStatus() == Response.Status.OK.getStatusCode())
        {
            InputStream is = resp.readEntity(InputStream.class);
            fetchFeed(is); 
            //fetchFeedAnotherWay(is) //use for Java 7
            IOUtils.closeQuietly(is);
            System.out.println("the file details after call:"+downloadfile.getAbsolutePath()+", size is "+downloadfile.length());
        } 
        else{
            throw new WebApplicationException("Http Call failed. response code is"+resp.getStatus()+". Error reported is"+resp.getStatusInfo());
        }
    }
    /**
    * Store contents of file from response to local disk using java 7 
    * java.nio.file.Files
    */
    private void fetchFeed(InputStream is){
        File downloadfile = new File("C://Data/test/downloaded/testnew.pdf");  
        byte[] byteArray = IOUtils.toByteArray(is);
        FileOutputStream fos = new FileOutputStream(downloadfile);
        fos.write(byteArray);
        fos.flush();
        fos.close();
    }
    
    /**
    * Alternate way to Store contents of file from response to local disk using
    * java 7, java.nio.file.Files
    */
    private void fetchFeedAnotherWay(InputStream is){
        File downloadfile = new File("C://Data/test/downloaded/testnew.pdf");  
        Files.copy(is, downloadfile.toPath(), StandardCopyOption.REPLACE_EXISTING);
    }
    

提交回复
热议问题