Клиент REST в Джерси: Как добавить XML-файл в тело запроса POST? - PullRequest
3 голосов
/ 12 июля 2011

Пока мой код:

FileReader fileReader = new FileReader("filename.xml");
Client c = Client.create();
WebResource webResource = c.resource("http://localhost:8080/api/resource");
webResource.type("application/xml");

Я хочу отправить содержимое filename.xml методом POST, но не знаю, как добавить их в тело запроса.Мне нужна помощь, так как в сети я только смог найти, как добавить Form args.

Заранее спасибо.

Ответы [ 2 ]

7 голосов
/ 12 июля 2011

Взгляните на Джерси API для WebResource.Он дает вам метод post, который принимает данные.

1 голос
/ 12 июля 2011

Вы всегда можете использовать API java.net в Java SE:

URL url = new URL("http://localhost:8080/api/resource");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setInstanceFollowRedirects(false);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/xml");

OutputStream os = connection.getOutputStream();

TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
FileReader fileReader = new FileReader("filename.xml");
StreamSource source = new StreamSource(fileReader);
StreamResult result = new StreamResult(os);
transformer.transform(source, result);

os.flush();
connection.getResponseCode();
connection.disconnect();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...