import java.io.IOException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.cert.CertificateException;
import java.util.Map;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.DefaultProxyRoutePlanner;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.util.EntityUtils;
public class HTTPProxy {
public static SSLContext createIgnoreVerifySSL() throws NoSuchAlgorithmException, KeyManagementException {
SSLContext sc = SSLContext.getInstance("SSLv3");
X509TrustManager trustManager = new X509TrustManager() {
@Override
public void checkClientTrusted(
java.security.cert.X509Certificate[] paramArrayOfX509Certificate,
String paramString) throws CertificateException {
}
@Override
public void checkServerTrusted(
java.security.cert.X509Certificate[] paramArrayOfX509Certificate,
String paramString) throws CertificateException {
}
@Override
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
};
sc.init(null, new TrustManager[] { trustManager }, null);
return sc;
}
public static HttpClientBuilder proxy(String hostOrIP, int port){
HttpHost proxy = new HttpHost(hostOrIP, port, "http");
DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);
return HttpClients.custom().setRoutePlanner(routePlanner);
}
public static Map<String,String> sendGetDocker1(String url) throws ClientProtocolException, IOException, KeyManagementException, NoSuchAlgorithmException {
Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", PlainConnectionSocketFactory.INSTANCE)
.build();
PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
HttpClients.custom().setConnectionManager(connManager);
CloseableHttpClient client = proxy("127.0.0.1", 1080).setConnectionManager(connManager).build();
HttpGet request =new HttpGet(url);
CloseableHttpResponse response = client.execute(request);
System.out.println(response.getStatusLine().toString()+"\n");
org.apache.http.Header[] hs=response.getAllHeaders();
for(org.apache.http.Header h:hs){
System.out.println(h.getName()+":\t"+h.getValue()+"\n");
}
try {
HttpEntity entity = response.getEntity();
System.out.println("--------------------------------------");
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println("Response content length: " + entity.getContentLength());
System.out.println("Response content: " + EntityUtils.toString(entity));
}
System.out.println("------------------------------------");
} finally {
response.close();
}
return null;
}
public static void main(String[] args) throws KeyManagementException, NoSuchAlgorithmException, NoSuchProviderException, IOException{
String urlValue="http://graph.facebook.com/v2.5/223495844457800/?fields=likes&access_token=EAACEdEose0cBANo9jZARJF7NBvEWkOR7NZA1rcZAojTuj3ofwcniFCa9AagZCD08t5WI4JN0GlRZBT23TZBaWzo0HgyQNygFY5EzZBIYTJ0ZBZCdp1r3WPZBjC3NsoZCTizkFIlR4cYxHw1T9DpdnV9Xzc8AqJIYKnS7WHnOYHxaI2sHSZAtMKTl2QXouYdj7ghJcZCcOVCpGjvjvB4S8NgKiyF3X";
System.out.println(urlValue);
System.out.println(sendGetDocker1(urlValue));
}
}