Maciej Ziarko
Maciej Ziarko

Reputation: 12094

Jersey REST Client: How to add XML file to the body of POST request?

My code so far:

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

I want to send contents of filename.xml with POST method but I have no idea how to add them to the body of request. I need help as in the net I was only able to find how to add Form args.

Thanks in advance.

Upvotes: 3

Views: 7076

Answers (2)

bdoughan
bdoughan

Reputation: 149017

You can always use the java.net APIs in 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();

Upvotes: 1

Qwerky
Qwerky

Reputation: 18445

Have a look at the Jersey API for WebResource. It gives you a post method that accepts data.

Upvotes: 7

Related Questions