cstrap
9/19/2014 - 12:16 PM

Example of REST client with POST data

Example of REST client with POST data

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RESTClient {

    public static String callUrl(String urlToCall) {

        StringBuilder sb = new StringBuilder();
        HttpURLConnection urlConn = null;
        InputStreamReader in = null;
        
        try {
            
            URL url = new URL(urlToCall);
            urlConn = (HttpURLConnection) url.openConnection();

            urlConn.setRequestProperty("Content-Type", "application/json; charset=utf8");
            urlConn.setRequestProperty("Accept", "application/json");
            urlConn.setRequestMethod("POST");

            urlConn.setDoOutput(true);

            DataOutputStream wr = new DataOutputStream(urlConn.getOutputStream());
            wr.writeBytes("{}");
            wr.flush();
            wr.close();

            if (urlConn != null) {
                urlConn.setReadTimeout(60 * 1000);
            }

            if (urlConn.getResponseCode() == HttpURLConnection.HTTP_OK 
                    && urlConn != null 
                    && urlConn.getInputStream() != null) {
                in = new InputStreamReader(urlConn.getInputStream(), Charset.defaultCharset());
                BufferedReader bufferedReader = new BufferedReader(in);
                if (bufferedReader != null) {
                    int cp;
                    while ((cp = bufferedReader.read()) != -1) {
                        sb.append((char) cp);
                    }
                    bufferedReader.close();
                }
            }
            
            in.close();
            
        } catch (Exception e) {
            throw new RuntimeException("Exception while calling URL:" + urlToCall, e);
        }

        return sb.toString();
    }