package bekkopen.jetty;
import org.apache.commons.io.IOUtils;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.SocketException;
import java.net.URL;
import static javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND;
/**
* This is just for convenience. It's not safe.
*/
public class H {
public static class Response {
public final int code;
public final String body;
public Response(int code, String body) {
this.code = code;
this.body = body;
}
public Response(int code) {
this(code, "");
}
}
public static Response GET(String uri) {
return http("GET", uri);
}
public static Response POST(String uri) {
return http("POST", uri);
}
static Response http(String method, String uri) {
try {
URL url = new URL(uri);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod(method);
Object content = conn.getContent();
if(content instanceof InputStream)
return new Response(conn.getResponseCode(), IOUtils.toString((InputStream) content, "UTF-8"));
else if(content instanceof String)
return new Response(conn.getResponseCode(), (String) content);
else
return new Response(conn.getResponseCode(), "unknown");
} catch (SocketException e) {
return new Response(SC_NOT_FOUND);
} catch (IOException e) {
return new Response(SC_INTERNAL_SERVER_ERROR);
}
}
}