1

Is there any other way that we can send an XML file to a RESTful Web Service other than as a FORMPARAM?

My requirement is to develop a webservice which Consumes a XML file, stores it in my local machine and returns a statement saying that the file was downloaded/saved.

3
  • RESTful wid Jersey is the actual requirement! Commented Sep 26, 2011 at 14:18
  • Check out stackoverflow.com/questions/1725315/… -- it's as easy as just not having a @FormParam annotation: @POST public void store(String xml) { ... Commented Sep 26, 2011 at 15:07
  • To be RESTful, don't return anything from a POST unless things break (i.e. the default "200 OK" is enough). Jersey will probably come up with a nice error message by itself anyway. Commented Sep 26, 2011 at 15:09

1 Answer 1

2

Here's the code to post, way easier than SOAP...

// POST the XML string as text/xml  via HTTPS
public static String postRequest(String strRequest, String strURL) throws Exception {
    String responseXML = null;

    try {
        URL url = new URL(strURL);
        URLConnection connection = url.openConnection();
        HttpURLConnection httpConn = (HttpURLConnection) connection;

        byte[] requestXML = strRequest.getBytes();

        // Set the appropriate HTTP parameters.
        httpConn.setRequestProperty("Content-Length", String.valueOf(requestXML.length));
        httpConn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
        httpConn.setRequestMethod("POST");
        httpConn.setDoOutput(true);
        httpConn.setDoInput(true);

        // Send the String that was read into postByte.
        OutputStream out = httpConn.getOutputStream();
        out.write(requestXML);
        out.close();

        // Read the response and write it to standard out.
        InputStreamReader isr = new InputStreamReader(httpConn.getInputStream());
        BufferedReader br = new BufferedReader(isr);
        String temp;
        String tempResponse = "";

        //Create a string using response from web services
        while ((temp = br.readLine()) != null)
            tempResponse = tempResponse + temp;
        responseXML = tempResponse;
        br.close();
        isr.close();
    } catch (java.net.MalformedURLException e) {
        System.out.println("Error in postRequest(): Secure Service Required");
    } catch (Exception e) {
        System.out.println("Error in postRequest(): " + e.getMessage());
    }
    return responseXML;
}
Sign up to request clarification or add additional context in comments.

1 Comment

where is it consuming my XML file?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.