Загрузка файла с помощью вызова REST POST в Java

У меня есть служба REST, которая возвращает файл, когда он вызывается через вызов POST с XML-файлом в качестве параметра. Моя цель - получить доступ к сервису с помощью клиента (простой вызов httppost в классе java). Пока что делаю как ниже:

    DefaultHttpClient defaultHtppclient = new DefaultHttpClient();
    HttpPost postRequest = new HttpPost("resturl");
    StringEntity input = new StringEntity("input xml file ");
    input.setContentType("application/xml");
    postRequest.setEntity(input);
    HttpResponse response = defaultHtppclient.execute(postRequest);                           

Я получаю содержимое файла, когда я конвертирую ответ, используя:

String content = EntityUtils.toString(response.getEntity());

Но я пытаюсь загрузить файл как таковой из класса Java. Когда я запускаю URL в тесте Firefox HTTP-ресурсов. Я получаю заголовки как:

Content-Disposition: attachment; filename = filenameFromserver
Content-Type: application/octet-stream

Есть ли способ загрузить файл как таковой с клиента?

1 ответ

Звонок, который вы делаете, ожидает application/xml, сервер отправляет вам поток октетов.

Вам нужно будет прочитать в байтах, которые он вам посылает, и записать их в нужный файл. Я бы порекомендовал поискать, как читать в потоке октетов.

Для примера взгляните на этот пост:

Чтение двоичного файла из URLConnection

Другие вопросы по тегам