设置代理ip——java

简介: 设置代理ip——java

之前一直说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的方法了,当然,不局限于这两种。任何方法都有利弊,我们要权衡自身需求以及用途去选择合适自己的方法。


相关文章
|
21天前
|
Java
【java】poi 设置允许西文在单词中间换行
【java】poi 设置允许西文在单词中间换行
|
25天前
|
Java
java环境变量设置
在Java环境配置中,首先找到Java安装目录(如`C:\Program Files\Java\jdk1.8.0_291`),然后将JDK的bin目录添加到系统环境变量Path中。这涉及右键点击“计算机”->“属性”->“高级系统设置”->“环境变量”->编辑“Path”->“新建”并输入`C:\Program Files\Java\jdk1.8.0_291\bin`。保存后,重启命令行,输入`java -version`检查设置是否成功。
22 4
|
5天前
|
存储 Java 定位技术
【Java】根据IP地址获取省市
【Java】根据IP地址获取省市
18 1
|
6天前
|
设计模式 缓存 算法
Java 的静态代理和动态代理
Java 的静态代理和动态代理
|
7天前
|
设计模式 Java 索引
由反射引出的Java动态代理与静态代理
由反射引出的Java动态代理与静态代理
12 0
|
9天前
|
Java Linux 开发工具
手把手教你Linux查找Java的安装目录并设置环境变量以及Linux下执行javac未找到命令的保姆级教学
手把手教你Linux查找Java的安装目录并设置环境变量以及Linux下执行javac未找到命令的保姆级教学
8 0
|
11天前
|
存储 Java
Java动态转发代理IP的实现方法
Java动态转发代理IP的实现方法
28 11
|
12天前
|
安全 Java API
java借助代理ip,解决访问api频繁导致ip被禁的问题
java借助代理ip,解决访问api频繁导致ip被禁的问题
|
14天前
|
网络协议 Java API
深度剖析:Java网络编程中的TCP/IP与HTTP协议实践
【4月更文挑战第17天】Java网络编程重在TCP/IP和HTTP协议的应用。TCP提供可靠数据传输,通过Socket和ServerSocket实现;HTTP用于Web服务,常借助HttpURLConnection或Apache HttpClient。两者结合,构成网络服务基础。Java有多种高级API和框架(如Netty、Spring Boot)简化开发,助力高效、高并发的网络通信。
|
22天前
|
Java
java实现上位机与西门子PLC的通讯设置
这段代码创建了一个ZCAN_Transmit_Data数组,初始化并设置了数组中的第一个元素,包括写入数据、传输类型为1。然后,创建了一个ZCAN_CAN_FRAME对象,指定了CAN_ID和数据长度为8,并将十六进制字符串转换为字节数组填充到数据字段。将这个帧赋值给ZCAN_Transmit_Data对象。最后通过ZLGCAN接口发送数据,如果返回值不等于1,则抛出异常,否则返回发送结果。