`

JAVA常用的代理设置

    博客分类:
  • J2SE
阅读更多
由于公司上网实行代理机制,
而最近一段时间又在研究Web上的OpenApi。
没办法一定要使用代理,我之前有文章介绍了httpclient的代理使用方式,
这里介绍基本java的代理使用方式。
最常使用的全局配置代理。
	Properties prop = System.getProperties();
        // HTTP代理的IP设置
        prop.setProperty("http.proxyHost", "10.28.0.254");
        // HTTP代理的端口设置
        prop.setProperty("http.proxyPort", "80");
        //这里也可以设置不需要使用代理的地址
        prop.setProperty("http.nonProxyHosts", "localhost|10.28.0.*");
        //设置HTTPS安全访问的代理服务器地址与端口
        prop.setProperty("https.proxyHost", "10.28.0.254");
        prop.setProperty("https.proxyPort", "443");
	//对于安全访问的过滤地址属性同样是http.nonProxyHosts并没有https.nonProxyHosts

        //FTP的代理设置入下
        prop.setProperty("ftp.proxyHost", "192.168.0.254");
        prop.setProperty("ftp.proxyPort", "2121");
        prop.setProperty("ftp.nonProxyHosts", "localhost|192.168.0.*");
        //SOCKS的代理设置
        prop.setProperty("socksProxyHost", "192.168.0.254");
        prop.setProperty("socksProxyPort", "8000");

有时代理需要进行身份验证 此时我们需要自己定义一个继承类Authenticator的类
   public class MyAuthenticator extends Authenticator {
        private String username = "";
        private String password = "";
        public MyAuthenticator(String username, String password) {
            this.username = username;
            this.password = password;
        }
        protected PasswordAuthentication getPasswordAuthentication() {
            returnnew PasswordAuthentication(username, password.toCharArray());
        }
    }

   //设置登陆到代理服务器的用户名和密码
   Authenticator.setDefault(new MyAuthenticator("userName", "Password"));

当然此种方法可以满足大部分的需求 但是有一定的局限行,
就是所有的连接通过统一属性进行代理配置的,不能对特定连接进行代理配置。

JDK5及其之后版本引入新的代理配置,可以满足对特定连接进行配置
	    URL url = new URL("http://www.shanhe114.com");
            //创建代理服务器
            InetSocketAddress addr = new InetSocketAddress("10.28.0.4",
                    8080);
            //Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr); //SOCKS代理
            Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); //HTTP代理
            //其他方式可以见Proxy.Type属性
            URLConnection conn = url.openConnection(proxy);
            InputStream in = conn.getInputStream();
            //InputStream in = url.openStream();
            String content = IOUtils.toString(in);
            System.out.println(content);









长春都市网

如果大家对JEE的深入研究有兴趣
可以加入Q群:46176507 共同进步学习
分享到:
评论
1 楼 zhangliao613 2011-05-06  
学习了,感谢~~

相关推荐

    java常用代码

    9.HttpProxy.java 代理设置 10.CaptureScreen.java 截取桌面 11.XmlReaer.java 读写xml文件 12.ArrayConvers.java 数组与map/list的转换 13.NumberCalc.java 对数字进行操作 14.ServerConn.java与ClientConn 先运行...

    Java静态代理与动态代理demo

    在Java编程中,代理模式是一种常用的结构型设计模式,它为其他对象提供一种代理以控制对这个对象的访问。代理模式通常用于增加额外的功能或在访问原始对象时进行额外的操作,比如日志记录、性能监控等。Java提供了两...

    Java 动态代理和Cglib代理(二)

    在Java编程领域,动态代理和Cglib代理是两种常用的技术,用于在运行时创建对象的代理,以实现额外的功能,如AOP(面向切面编程)中的日志、事务管理等。本篇文章将深入探讨这两种代理机制,尤其是Cglib代理。 首先...

    java中的三种代理模式

    以下是Java中的三种代理模式的详细说明: 1. **静态代理** 静态代理是最基础的代理方式,它需要程序员手动创建目标对象的代理类。代理类和目标类都必须实现相同的接口,以便于调用者通过接口调用方法。在代理类中...

    java代理机制 JDK动态代理和cglib代理 详解

    CGLIB(Code Generation Library)是另一个常用的Java代理库,它不需要目标类实现任何接口,而是通过继承的方式创建代理类。CGLIB使用ASM库在运行时动态生成字节码,创建目标类的子类,从而实现对目标类方法的增强。...

    java中常用设计模式总结心得

    以下是对Java中常用设计模式的详细解释: 1. **单例模式**:单例模式确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于配置管理、线程池或者数据库连接池等场景。实现方式有懒汉式(线程不安全)、...

    Java常用设计模式

    在Java中,静态代理和动态代理(通过`java.lang.reflect.Proxy`类)是常见的实现方式。 10. **动态代理模式**:在运行时创建代理对象,动态代理模式主要用于实现AOP(面向切面编程),例如日志记录、性能监控等。...

    java常用设计模式-代理模式

    代理模式(Proxy Pattern)是一种常用的设计模式,提供了间接访问目标对象的一种方式,即通过代理对象访问目标对象。这样做的好处是,可以在不改变原有目标对象的基础上,对目标对象增加额外的扩展功能。 代理模式...

    java常用23中设计模式

    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...

    java 静态代理和动态代理学习实例源码

    在Java中,静态代理的实现步骤如下: 1. **定义接口**:首先,我们需要定义一个公共接口,该接口描述了真实对象和代理对象需要共同实现的行为。 ```java public interface Service { void execute(); } ``` 2. **...

    Java中三种代理模式源码+文档

    这里我们将深入探讨Java中的三种代理模式:静态代理、动态代理(JDK代理)和CGLIB代理,并结合源码分析来理解其工作原理。 1. 静态代理: 静态代理是最基础的代理模式,通过接口或抽象类实现。在静态代理中,我们...

    java代理服务器设置方法[借鉴].pdf

    Java 代理服务器设置方法 Java 代理服务器设置方法是通过设置 Java 环境变量来实现的,也就是 JVM 的系统属性。我们需要设置三个属性,proxySet、proxyHost 和 proxyPort。proxySet 是个 boolean 类型的,可以设置...

    java常用设计模式及JDK与CGLIB实现动态代理区别(源码)

    java常用设计模式及JDK与CGLIB实现动态代理区别(源码) /** * 使用cglib动态代理 * @author * */ public class BookFacadeProxy implements MethodInterceptor{ private Object target; @Override public...

    java常用的jar包

    以下是对标题和描述中提到的一些常用jar包的详细解释: 1. **AspectJ**:这是一个强大的面向切面编程(AOP)框架,它允许程序员在不修改源代码的情况下,插入额外的功能或行为,如日志、事务管理等。AspectJ提供了...

    java常用名词解

    这种方式提高了系统的灵活性和可测试性,是现代软件架构中常用的技术之一。DI 和 IoC(Inversion of Control)常常被一起提及,二者密切相关但并不完全相同。 #### EJB (Enterprise JavaBeans) 企业 Java Beans 是...

    java常用工具类整理

    "java常用工具类整理"这个主题涵盖了Java开发中常用的工具类,这些类在日常编程中非常实用,能大大提高开发效率。这里我们将深入探讨一些常见的Java工具类,并结合`com-jarvis-base`这个文件名,推测这是一个基础...

    java常用设计模式集锦

    java常用的设计模式一个简单总结,如工厂模式、单例模式、代理模式等等。(楼主也是未入门的菜鸟,如有错误请及时联系楼主更正,谢谢!)

    Java两种代理模式案例

    在Java中,代理模式有两种主要实现方式:静态代理和动态代理。下面将详细介绍这两种代理模式,并结合`ProxyDemo`案例进行说明。 ### 1. 静态代理 静态代理是最基础的代理形式,它通过显式创建一个代理类来实现对...

    基于Java动态代理和反射机制实现ORM

    在Java中,基于动态代理和反射机制实现ORM可以提高代码的可维护性和灵活性。本篇文章将深入探讨如何在Java环境下,结合MySQL数据库,利用动态代理和反射技术来实现简单的ORM框架。 首先,我们需要了解动态代理和...

    java常用开发代码4,Spring

    本集合主要关注的是Java和Spring框架在实际开发中的常见应用和技巧。 1. **Spring框架概述**:Spring是一个开源的Java平台,它提供了全面的编程和配置模型,用于构建现代Java应用。Spring的核心特性包括依赖注入...

Global site tag (gtag.js) - Google Analytics