之前一直说python使用代理ip,难道代理ip只能python使用吗?其实不然,代理ip除了python可以使用还有很多,下面我们来讲一下其中一种,Java怎么设置代理ip。
1、直接在JVM中设置
1. /*JVM设置代理*/ System.getProperties().setProperty("http.proxyHost", ip); System.getProperties().setProperty("http.proxyPort", "80");
这种设置方式它的优点在于方便且比较快,并且因为它是JVM级别,可以作用到这一整个项目当中。有利则也有弊,那就是在代理ip失效的时候,会直接调用本地ip来进行工作。这种操作在很多场景中是极为致命的。
2、使用socketaddress网络去代理
/** * 通过代理对象连接 * @param address * @return */ SocketAddress addr = new InetSocketAddress(host, Integer.parseInt(port)); Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); try{ URL url = new URL("http://www.xxx.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(); }
建立一个proxy对象,之后使用它去连接。在代理ip失效的时候,它会返回错误,这种方法的优点在于代理ip工作时出现错误,它可以及时中断这个工作而不是使用本地ip去继续工作。然它的弊端在于要为每一次连接创建一个对象,非常繁琐。
以上就是Java设置代理ip的方法了,当然,不局限于这两种。任何方法都有利弊,我们要权衡自身需求以及用途去选择合适自己的方法。