Загрузка файла с помощью вызова 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, сервер отправляет вам поток октетов.
Вам нужно будет прочитать в байтах, которые он вам посылает, и записать их в нужный файл. Я бы порекомендовал поискать, как читать в потоке октетов.
Для примера взгляните на этот пост: