How to send PUT, DELETE HTTP request in HttpURLConnection? How to send PUT, DELETE HTTP request in HttpURLConnection? java java

How to send PUT, DELETE HTTP request in HttpURLConnection?


To perform an HTTP PUT:

URL url = new URL("http://www.example.com/resource");HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();httpCon.setDoOutput(true);httpCon.setRequestMethod("PUT");OutputStreamWriter out = new OutputStreamWriter(    httpCon.getOutputStream());out.write("Resource content");out.close();httpCon.getInputStream();

To perform an HTTP DELETE:

URL url = new URL("http://www.example.com/resource");HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();httpCon.setDoOutput(true);httpCon.setRequestProperty(    "Content-Type", "application/x-www-form-urlencoded" );httpCon.setRequestMethod("DELETE");httpCon.connect();


This is how it worked for me:

HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("DELETE");int responseCode = connection.getResponseCode();


public  HttpURLConnection getHttpConnection(String url, String type){        URL uri = null;        HttpURLConnection con = null;        try{            uri = new URL(url);            con = (HttpURLConnection) uri.openConnection();            con.setRequestMethod(type); //type: POST, PUT, DELETE, GET            con.setDoOutput(true);            con.setDoInput(true);            con.setConnectTimeout(60000); //60 secs            con.setReadTimeout(60000); //60 secs            con.setRequestProperty("Accept-Encoding", "Your Encoding");            con.setRequestProperty("Content-Type", "Your Encoding");        }catch(Exception e){            logger.info( "connection i/o failed" );        }        return con;}

Then in your code :

public void yourmethod(String url, String type, String reqbody){    HttpURLConnection con = null;    String result = null;    try {        con = conUtil.getHttpConnection( url , type);    //you can add any request body here if you want to post         if( reqbody != null){                  con.setDoInput(true);                con.setDoOutput(true);                DataOutputStream out = new  DataOutputStream(con.getOutputStream());                out.writeBytes(reqbody);                out.flush();                out.close();            }        con.connect();        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));        String temp = null;        StringBuilder sb = new StringBuilder();        while((temp = in.readLine()) != null){            sb.append(temp).append(" ");        }        result = sb.toString();        in.close();    } catch (IOException e) {        // TODO Auto-generated catch block        e.printStackTrace();        logger.error(e.getMessage());    }//result is the response you get from the remote side}