Java Jersey 2用于StreamingOutput的客户端

Java Jersey 2用于StreamingOutput的客户端,java,jersey-2.0,jersey-client,Java,Jersey 2.0,Jersey Client,我有一个Jersey服务,它将二进制数据输出为StreamingOutput,MediaType.APPLICATION\u OCTET\u STREAM 如何使用Jersey2实现客户端,以处理来自此类服务的响应。下面是实现Jersey 2客户端的一种方法,用于从REST服务下载文件,该服务使用MediaType.APPLICATION_OCTET_STREAM返回二进制数据作为流输出- Client client = ClientBuilder.newClient(); //

我有一个
Jersey
服务,它将二进制数据输出为
StreamingOutput
MediaType.APPLICATION\u OCTET\u STREAM


如何使用Jersey2实现客户端,以处理来自此类服务的
响应

下面是实现Jersey 2客户端的一种方法,用于从REST服务下载文件,该服务使用
MediaType.APPLICATION_OCTET_STREAM
返回二进制数据作为
流输出-

    Client client = ClientBuilder.newClient();
    // change SERVER_URL, API_PATH and PATH as per REST API details
    WebTarget webTarget = client.target(SERVER_URL).path(API_PATH).path(PATH);

    Invocation.Builder invocationBuilder = webTarget.request();
    Response response = invocationBuilder.get();

    String contentDispositionHeader = response.getHeaderString("Content-Disposition");
    String fileName = contentDispositionHeader
            .substring(contentDispositionHeader.indexOf("filename=") + "filename=".length()).replace("\"", "");

    InputStream responseStream = response.readEntity(InputStream.class);

    // Set location here where you want to store downloaded file. 
    // It will replace the file if already exist in that location with same name.
    Files.copy(responseStream, Paths.get("H:/"+ fileName), StandardCopyOption.REPLACE_EXISTING);

    System.out.println("File is downloaded");

Jersey文档中有一个客户端API部分,请看以下示例: