java应用使用代理访问网络设置

要想让你的java应用使用代理连接网络,有两种方式可以做到。一、设置System的properties,这种方法的缺点是不能为单独应用设置不同的代理。二、使用Proxy类,这种方法可以为单独的应用设置单独的代理。

首先来讲一下设置system properties的方法,有两种方法可以设置,一是直接在java代码里面调用System.setProperty()方法,还有就是通过-D选项添加java虚拟机参数,如  java -Dhttp.proxyHost=192.168.254.254     -Dhttp.proxyPort=9000。当然你也可以指定不使用代理访问的网站或者主机,http.nonProxyHosts属性指定不使用代理访问的域。示例如下所示:

System.setProperty(“http.proxyHost”, “192.168.254.254″);System.setProperty(“http.proxyPort”, “9000″);System.setProperty(“http.nonProxyHosts”, “localhost”);

如果你想使用ftp代理可以以相同的方式设定如下系统属性:

ftp.proxyHost, ftp.proxyPort, and ftp.nonProxyHosts

使用socket代理可以设定socksProxyHost socksProxyPort

这种方式的缺点是不能对单独的连接设置代理,下面是一段示例代码:
            /**

     *@paramargs

     */

    /**

     *@paramargs

     */

    public static void main(String[] args) {

        Properties prop = System.getProperties();

        // 设置http访问要使用的代理服务器的地址

        prop.setProperty(“http.proxyHost”, “192.168.0.254″);

        // 设置http访问要使用的代理服务器的端口

        prop.setProperty(“http.proxyPort”, “8080″);

        // 设置不需要通过代理服务器访问的主机,可以使用*通配符,多个地址用|分隔

        prop.setProperty(“http.nonProxyHosts”, “localhost|192.168.0.*”);

        // 设置安全访问使用的代理服务器地址与端口

        // 它没有https.nonProxyHosts属性,它按照http.nonProxyHosts 中设置的规则访问

        prop.setProperty(“https.proxyHost”, “192.168.0.254″);

        prop.setProperty(“https.proxyPort”, “443″);

        // 使用ftp代理服务器的主机、端口以及不需要使用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.setDefault(new MyAuthenticator(“userName”, “Password”));

    }

    static class MyAuthenticator extends Authenticator {

        private String user = “”;

        private String password = “”;

        public MyAuthenticator(String user, String password) {

            this.user = user;

            this.password = password;

        }

        protected PasswordAuthentication getPasswordAuthentication() {

            returnnew PasswordAuthentication(user, password.toCharArray());

        }

    }

再来介绍勇Proxy类代理。使用Proxy来对每个连接实现代理, 这种方法只能在jdk 1.5以上的版本使用(包含jdk1.5), 优点是可以单独的设置每个连接的代理, 缺点是设置比较麻烦:

    public static void main(String[] args) {

        try {

            URL url = new URL(“http://www.baidu.com”);

            // 创建代理服务器

            InetSocketAddress addr = new InetSocketAddress(“192.168.0.254″,

                    8080);

            // Proxy proxy = new Proxy(Proxy.Type.SOCKS, addr); // Socket 代理

            Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); // http 代理

            // 如果我们知道代理server的名字, 可以直接使用

            // 结束

            URLConnection conn = url.openConnection(proxy);

            InputStream in = conn.getInputStream();

            // InputStream in = url.openStream();

            String s = IOUtils.toString(in);

            System.out.println(s);

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

不是很详细, 有什么问题还望大家指正

================================

/*

 * Output:

 *  

 */

import java.io.InputStream;

import java.net.URL;

public class MainClass {

  public static void main(String args[]) {

    try {

      URL url = new URL(“http://www.java2s.com”);

      // Obtain output stream

      InputStream is = url.openStream();

      // Read and display data from url

      byte buffer[] = new byte[1024];

      int i;

      while ((i = is.read(buffer)) != -1) {

        System.out.write(buffer, 0, i);

      }

    } catch (Exception e) {

      e.printStackTrace();

    }

  }

}

<!-- Easy AdSense V2.91 --><!-- Post[count: 1] -->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您下载了本程序,但是该程序无法运行,或者您不会部署,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的) 爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
提供的源码资源涵盖了安卓应用、小程序、Python应用Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值