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();

  }

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

posted @ 2021-04-07 11:36  xiexie0812  阅读(1680)  评论(0编辑  收藏  举报