blob: a9f2abeec387eeb322b74de623036d8f26ff3c09 [file] [log] [blame]
package net.onrc.onos.ofcontroller.bgproute;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.commons.httpclient.ConnectTimeoutException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class RestClient {
protected final static Logger log = LoggerFactory.getLogger(RestClient.class);
public static String get(String str) {
StringBuilder response = new StringBuilder();
try {
URL url = new URL(str);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(2 * 1000); //2 seconds
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
if (conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}
if (!conn.getContentType().equals("application/json")){
log.warn("The content received from {} is not json", str);
}
BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
String line;
while ((line = br.readLine()) != null) {
response.append(line);
}
br.close();
conn.disconnect();
} catch (MalformedURLException e) {
log.error("Malformed URL for GET request", e);
} catch (ConnectTimeoutException e) {
log.warn("Couldn't connect remote REST server");
} catch (IOException e) {
log.warn("Couldn't connect remote REST server");
}
return response.toString();
}
public static void post (String str) {
try {
URL url = new URL(str);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
if (conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}
conn.disconnect();
} catch (MalformedURLException e) {
log.error("Malformed URL for GET request", e);
} catch (IOException e) {
log.warn("Couldn't connect remote REST server");
}
}
public static void delete (String str) {
try {
URL url = new URL(str);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("DELETE");
conn.setRequestProperty("Accept", "application/json");
if (conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}
conn.disconnect();
} catch (MalformedURLException e) {
log.error("Malformed URL for GET request", e);
} catch (IOException e) {
log.warn("Couldn't connect remote REST server");
}
}
}