2015-02-02 3 views
0

Запросить webAPI, который дает мне ZIP-файл. Теперь мой вопрос: Как загрузить этот файл с jaxrs.ResteasyClient. Вот что я имею, но это не работает для меня.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(); 

Я понятия не имею, если это имеет смысл, но я не нахожу хорошую документацию о чтении файла вместо объекта боба.

ответ

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()); 
}