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


相关文章
|
3月前
|
缓存 Java Spring
Java本地高性能缓存实践问题之Caffeine中设置刷新机制的问题如何解决
Java本地高性能缓存实践问题之Caffeine中设置刷新机制的问题如何解决
|
3月前
|
缓存 Java
Java本地高性能缓存实践问题之Caffeine缓存库中基于时间设置驱逐策略的问题如何解决
Java本地高性能缓存实践问题之Caffeine缓存库中基于时间设置驱逐策略的问题如何解决
|
18天前
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
50 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
5天前
|
设计模式 Java API
[Java]静态代理与动态代理(基于JDK1.8)
本文介绍了代理模式及其分类,包括静态代理和动态代理。静态代理分为面向接口和面向继承两种形式,分别通过手动创建代理类实现;动态代理则利用反射技术,在运行时动态创建代理对象,分为JDK动态代理和Cglib动态代理。文中通过具体代码示例详细讲解了各种代理模式的实现方式和应用场景。
[Java]静态代理与动态代理(基于JDK1.8)
|
12天前
|
Java Linux iOS开发
如何设置 Java 的环境变量
设置Java环境变量是使用Java开发工具和运行Java程序的前提。主要步骤包括:安装JDK,配置系统环境变量中的JAVA_HOME、PATH和CLASSPATH,确保命令行可直接调用javac和java命令。
|
12天前
|
Java
Java访问外网图片地址时,如何添加代理?
【10月更文挑战第14天】Java访问外网图片地址时,如何添加代理?
19 2
|
13天前
|
安全 Java Linux
java程序设置开机自启
java程序设置开机自启
|
8天前
|
Java
Java代码解释静态代理和动态代理的区别
### 静态代理与动态代理简介 **静态代理**:代理类在编译时已确定,目标对象和代理对象都实现同一接口。代理类包含对目标对象的引用,并在调用方法时添加额外操作。 **动态代理**:利用Java反射机制在运行时生成代理类,更加灵活。通过`Proxy`类和`InvocationHandler`接口实现,无需提前知道接口的具体实现细节。 示例代码展示了两种代理方式的实现,静态代理需要手动创建代理对象,而动态代理通过反射机制自动创建。
|
3月前
|
缓存 负载均衡 安全
|
3月前
|
Java
Java系列之 IDEA 为类 和 方法设置注解模板
这篇文章介绍了如何在IntelliJ IDEA中为类和方法设置注解模板,包括类模板的创建和应用,以及两种不同的方法注解模板的创建过程和实际效果展示,旨在提高代码的可读性和维护性。