/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package at.ac.tuwien.dsg.cloud.elise.extensions.salsainfocollector;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.ws.rs.core.MediaType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author Duc-Hung LE
*/
public class RestfulUtils {
static Logger logger = LoggerFactory.getLogger(RestfulUtils.class);
public static enum HttpVerb {
GET, POST, PUT, DELETE, OTHER;
public static HttpVerb fromString(String method) {
try {
return HttpVerb.valueOf(method.toUpperCase());
} catch (Exception e) {
return OTHER;
}
}
}
public static String queryDataToCenter(String input_url, HttpVerb method, String data, String type, String accept) {
try {
URL url = new URL(input_url);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod(method.toString());
if (accept.equals("")) {
conn.setRequestProperty("Accept", MediaType.TEXT_PLAIN);
} else {
conn.setRequestProperty("Accept", accept);
}
if (type.equals("")) {
conn.setRequestProperty("Type", MediaType.TEXT_PLAIN);
} else {
conn.setRequestProperty("Type", type);
}
logger.debug("Execute a query. URL: " + url + ". Method: " + method + ". Data: " + data + ". Sending type:" + type + ". Recieving type: " + accept);
BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
String output;
String result = "";
while ((output = br.readLine()) != null) {
System.out.println(output);
result += output;
}
conn.disconnect();
return result;
} catch (Exception e) {
logger.error("Error when executing the query. Error: " + e);
return null;
}
}
}