Java如何设置代理ip

Java如何设置代理ip

第一种,直接在JVM中设置:

  /JVM设置代理/

  System.getProperties().setProperty("http.proxyHost", ip);

  System.getProperties().setProperty("http.proxyPort", "80");

  这种设置的优势 :快捷方便,且由于是JVM级别的设置,可以对整个项目起作用。当然这种设置方法有一个明显的劣势:当代理ip不可用时,会直接调用本地网络来进行连接。这个问题在很多使用场景中是非常致命的。

第二种,使用SocketAddress网络代理:

  SocketAddress addr = new InetSocketAddress(host, Integer.parseInt(port));

  Proxy proxy = new Proxy(Proxy.Type.HTTP, addr);

  try{

  URL url = new URL("http://www.baidu.com");

  URLConnection conn = url.openConnection(proxy);

  conn.setConnectTimeout(5000);

  conn.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 7.0; NT 5.1; GTB5; .NET CLR 2.0.50727; CIBA)");

  conn.getContent();

  }catch (Exception e) {

  e.printStackTrace();

  }

这种办法的优势是,在代理连接发生错误时,会抛出异常而并不是使用本地的连接继续访问。而劣势也很明显,你需要为每一次连接创建一个代理对象。

欢迎一起来学习和指导,谢谢关注!
原文地址:https://www.cnblogs.com/mask-xiexie/p/14626998.html