java 设置代理ip
来源:互联网 发布:网络分离器图片 编辑:程序博客网 时间:2024/05/01 20:40
java有两种方法可以设置代理ip,简单介绍一下优劣
第一种,直接在JVM中设置:
/*JVM设置代理*/System.getProperties().setProperty("http.proxyHost", ip); System.getProperties().setProperty("http.proxyPort", "80");
这种设置的优势是快捷方便,且由于是JVM级别的设置,可以对整个项目起作用。当然这种设置方法有一个明显的劣势:当代理ip不可用时,会直接调用本地网络来进行连接。这个问题在很多使用场景中是非常致命的。
第二种,使用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.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();}
建立一个Proxy对象,然后使用这个对象来进行连接。当代理失效时,会直接抛出异常。这种办法的优势是,在代理连接发生错误时,会抛出异常而并不是使用本地的连接继续访问。而劣势也很明显,你需要为每一次连接创建一个代理对象。
最后是一个用于验证代理IP是否生效的抓取程序,抓取地址是:http://1212.ip138.com/ic.asp 可以直接看到访问的ip地址。需要注意的是,如果你使用的是透明代理,那么这个ip依然会显示为你的实际ip只有使用匿名代理时,该ip才会变成代理ip。
以下是抓取程序:
/** * 获得页面信息 * @param address * @return */ private static String getHtml(String address){ StringBuffer html = new StringBuffer(); String result = null; try{ URL url = new URL(address); URLConnection conn = url.openConnection(); conn.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 7.0; NT 5.1; GTB5; .NET CLR 2.0.50727; CIBA)"); BufferedInputStream in = new BufferedInputStream(conn.getInputStream()); try{ String inputLine; byte[] buf = new byte[4096]; int bytesRead = 0; while (bytesRead >= 0) { inputLine = new String(buf, 0, bytesRead, "ISO-8859-1"); html.append(inputLine); bytesRead = in.read(buf); inputLine = null; } buf = null; }finally{ in.close(); conn = null; url = null; } result = new String(html.toString().trim().getBytes("ISO-8859-1"), "gb2312").toLowerCase(); }catch (Exception e) { e.printStackTrace(); return null; }finally{ html = null; } return result; }
0 0
- java 设置代理ip
- java 设置代理IP
- java代理IP设置实例
- Java 设置代理IP 访问网络
- 怎么样设置代理IP
- VC 设置代理IP
- 爬虫代理ip设置
- 爬虫代理ip设置
- selenium设置代理ip
- 设置ip代理
- java 代理ip
- Android模拟器代理设置、ip设置
- vb.net webbrowser控件 设置代理IP,webbrowser 代理IP
- java代理实现爬取代理IP
- 【Java】设置HttpClient代理
- Java Http 设置代理
- java 设置代理
- java代理设置
- 详细解析Raid0、Raid0+1、Raid1、Raid5四者的区别
- 说说JSON和JSONP,也许你会豁然开朗
- Android Matrix pre post set 三个平移缩放等操作使用
- mustache模板技术(转)
- Codeforces Round #353 (Div. 2)-B. Restoring Painting(数学)
- java 设置代理ip
- UserHandle id含义
- 获取和设置一个值的二进制第n位.
- 内存分析
- 欢迎使用CSDN-markdown编辑器
- 【BZOJ4562】【食物链】【dp+拓扑排序】
- php 递归创建及删除目录
- AngularJS学习(1)Expressions
- Ext4 两种访问Restful 方式