package nginx.clojure.net;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
import nginx.clojure.java.ArrayMap;
import nginx.clojure.java.Constants;
import nginx.clojure.java.NginxJavaRingHandler;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
public class SimpleHandler4TestHttpClientGetMethod implements NginxJavaRingHandler {
public SimpleHandler4TestHttpClientGetMethod() {
}
@Override
public Object[] invoke(Map<String, Object> request) {
CloseableHttpClient httpclient = HttpClients.createDefault();
// HttpGet httpget = new HttpGet("http://cn.bing.com/");
HttpGet httpget = new HttpGet("http://www.apache.org/dist/httpcomponents/httpclient/RELEASE_NOTES-4.3.x.txt");
CloseableHttpResponse response = null;
try {
response = httpclient.execute(httpget);
InputStream in = response.getEntity().getContent();
byte[] buf = new byte[1024];
int c = 0;
ByteArrayOutputStream out = new ByteArrayOutputStream();
while ((c = in.read(buf)) > 0) {
out.write(buf, 0, c);
}
in.close();
Object[] resps = new Object[] {
200,
ArrayMap.create(Constants.CONTENT_TYPE, "text/html"),
new ByteArrayInputStream(out.toByteArray())
};
return resps;
} catch(IOException e) {
throw new RuntimeException("ioexception", e);
}finally {
if (httpclient != null) {
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}