Zombies
Zombies

Reputation: 25852

Using Java, Need to establish an https connection via proxy

I need to establish and send/read over/from an https connection (to a website of course) but through an http proxy or SOCKS proxy. A few other requirements

I was looking into HttpCore components but I did not see any support for blocking https.

Upvotes: 1

Views: 2410

Answers (4)

ZZ Coder
ZZ Coder

Reputation: 75456

To support per-thread proxy, your best bet is Apache HttpClient 4 (Http Components Client). Get the source code,

http://hc.apache.org/downloads.cgi

It comes with examples for both HTTP proxy and SOCKS proxy,

   ClientExecuteProxy.java
   ClientExecuteSOCKS.java

Upvotes: 2

sal
sal

Reputation: 23623

Did you look at Apache HTTP Client? Haven't used it in ages but I did use it to pick a proxy server dynamically. Example from site here:

 HttpClient httpclient = new HttpClient();
  httpclient.getHostConfiguration().setProxy("myproxyhost", 8080);
  httpclient.getState().setProxyCredentials("my-proxy-realm", " myproxyhost",
  new UsernamePasswordCredentials("my-proxy-username", "my-proxy-password"));
  GetMethod httpget = new GetMethod("https://www.verisign.com/");
  try { 
    httpclient.executeMethod(httpget);
    System.out.println(httpget.getStatusLine());
  } finally {
    httpget.releaseConnection();
  }

Upvotes: 1

Yishai
Yishai

Reputation: 91871

Look at the java.net.Proxy class. That does what you need. You create one, and then pass it to the URLConnection to create the connection.

Upvotes: 3

os111
os111

Reputation: 154

System.setProperty("http.proxyHost", "proxy.com");
System.setPropery("http.proxyPort", "8080");

URL url = new URL("http://java.sun.com/");
InputStream in = url.openStream();

http://java.sun.com/javase/6/docs/technotes/guides/net/proxies.html

Upvotes: 0

Related Questions