jaxrs.ResteasyClient下载文件

时间:2015-02-02 13:00:40

标签: client resteasy

请求一个给我一个ZIP文件的webAPI。现在我的问题: 如何使用jaxrs.ResteasyClient下载该文件。这是我所拥有的,但它对我不起作用。

// In
Reader reader = client.target(url).request().get().readEntity(Reader.class);
BufferedReader bufferedReader = new BufferedReader(reader);

// Out
File out = new File("C:\\tmp\\test.zip");
FileWriter fileWriter = new FileWriter(out);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
String s = null;

while (true) {
  s = bufferedReader.readLine();

  if (s == null) {
    break;
  }

  bufferedWriter.write(s);
}

bufferedWriter.flush();
bufferedWriter.close();
bufferedReader.close();

我不知道这是否有意义,但我找不到任何关于读取文件而不是bean对象的好文档。

1 个答案:

答案 0 :(得分:0)

不使用jaxrs.ResteasyClient解决了此问题。 Apache HTTPClient是我的朋友!

private void getFileByURL(String url, String target) throws URISyntaxException, IOException {
  HttpClientBuilder builder = HttpClients.custom().build();
  CloseableHttpClient client = builder.build();

  HttpResponse response = client.execute(new HttpGet(new URI(url)));
  BufferedInputStream bufferedInputStream = new BufferedInputStream(response.getEntity().getContent());
  BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(new File(target)));
  int inByte;
  while ((inByte = bufferedInputStream.read()) != -1) {
    bufferedOutputStream.write(inByte);
  }
  bufferedInputStream.close();
  bufferedOutputStream.close();
  EntityUtils.consume(response.getEntity());
}