package org.ukiuni.pacifista;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Map;
import org.ukiuni.pacifista.util.HttpUtil;
import org.ukiuni.pacifista.util.HttpUtil.HttpMethod;
import org.ukiuni.pacifista.util.ScriptingUtil;
public class Http {
private static final String DEFAUL_ENCODE = "UTF-8";
private Runtime runtime;
public Http(Runtime runtime) {
this.runtime = runtime;
}
public String get(String url) throws IOException {
return get(url, DEFAUL_ENCODE);
}
public String get(String url, String encode) throws IOException {
String proxyHost = (String) runtime.getEnv("httpProxyHost");
int proxyPort = null == runtime.getEnv("httpProxyPort") ? 0 : Integer.parseInt((String) runtime.getEnv("httpProxyPort"));
String proxyUser = (String) runtime.getEnv("httpProxyUser");
String proxyPassword = (String) runtime.getEnv("httpProxyPassword");
return get(url, proxyHost, proxyPort, proxyUser, proxyPassword);
}
public String get(String url, String proxyHost, int proxyPort, String proxyUser, String proxyPassword) throws IOException {
return get(url, DEFAUL_ENCODE, proxyHost, proxyPort, proxyUser, proxyPassword);
}
public String get(String url, String encode, String proxyHost, int proxyPort, String proxyUser, String proxyPass) throws IOException {
return request(url, encode, "GET", proxyHost, proxyPort, proxyUser, proxyPass);
}
public String post(String url) throws IOException {
return post(url, DEFAUL_ENCODE);
}
public String post(String url, String encode) throws IOException {
String proxyHost = (String) runtime.getEnv("httpProxyHost");
int proxyPort = null == runtime.getEnv("httpProxyPort") ? 0 : Integer.parseInt((String) runtime.getEnv("httpProxyPort"));
String proxyUser = (String) runtime.getEnv("httpProxyUser");
String proxyPassword = (String) runtime.getEnv("httpProxyPassword");
return post(url, encode, proxyHost, proxyPort, proxyUser, proxyPassword);
}
public String post(String url, String proxyHost, int proxyPort, String proxyUser, String proxyPassword) throws IOException {
return request(url, "POST", DEFAUL_ENCODE, proxyHost, proxyPort, proxyUser, proxyPassword);
}
public String post(String url, String encode, String proxyHost, int proxyPort, String proxyUser, String proxyPassword) throws IOException {
return request(url, "POST", encode, proxyHost, proxyPort, proxyUser, proxyPassword);
}
public String request(String url, String method) throws IOException {
return request(url, method, DEFAUL_ENCODE);
}
public String request(String url, String encode, String method) throws IOException {
String proxyHost = (String) runtime.getEnv("httpProxyHost");
int proxyPort = null == runtime.getEnv("httpProxyPort") ? 0 : Integer.parseInt((String) runtime.getEnv("httpProxyPort"));
String proxyUser = (String) runtime.getEnv("httpProxyUser");
String proxyPassword = (String) runtime.getEnv("httpProxyPassword");
return request(url, method, encode, proxyHost, proxyPort, proxyUser, proxyPassword);
}
public String request(String url, String encode, String method, String proxyHost, int proxyPort, String proxyUser, String proxyPassword) throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
HttpUtil.httpRequest(url, HttpMethod.valueOf(method), out, proxyHost, proxyPort, proxyUser, proxyPassword);
} catch (Exception e) {
e.printStackTrace();
}
return new String(out.toByteArray(), encode);
}
public String request(String url, String method, String requestParameter, String headerParameters) throws IOException {
return request(url, DEFAUL_ENCODE, method, requestParameter, headerParameters);
}
public String request(String url, String encode, String method, String requestParameter, String headerParameters) throws IOException {
String proxyHost = (String) runtime.getEnv("httpProxyHost");
int proxyPort = null == runtime.getEnv("httpProxyPort") ? 0 : Integer.parseInt((String) runtime.getEnv("httpProxyPort"));
String proxyUser = (String) runtime.getEnv("httpProxyUser");
String proxyPassword = (String) runtime.getEnv("httpProxyPassword");
return request(url, encode, method, requestParameter, headerParameters, proxyHost, proxyPort, proxyUser, proxyPassword);
}
public String request(String url, String method, String requestParameter, String headerParameters, String proxyHost, int proxyPort, String proxyUser, String proxyPassword) throws IOException {
return request(url, DEFAUL_ENCODE, method, requestParameter, headerParameters, proxyHost, proxyPort, proxyUser, proxyPassword);
}
public String request(String url, String encode, String method, String requestParameter, String headerParameters, String proxyHost, int proxyPort, String proxyUser, String proxyPassword) throws IOException {
ByteArrayOutputStream out = new ByteArrayOutputStream();
Map<String, String> headerMap = ScriptingUtil.parseParameters(headerParameters);
HttpUtil.httpRequest(url, HttpMethod.valueOf(method), out, requestParameter, headerMap, proxyHost, proxyPort, proxyUser, proxyPassword);
return new String(out.toByteArray(), encode);
}
}