java中如何设置代理

1 前言

有时候我们的程序中要提供可以使用代理访问网络,代理的方式包括http、https、ftp、socks代理。比如在IE浏览器设置代理。

那我们在我们的java程序中使用代理呢,有如下两种方式。直接上代码.

2 采用设置系统属性

import java.net.Authenticator;
import java.net.PasswordAuthentication;
import java.util.Properties;

public class ProxyDemo1 {
    public static void main(String[] args) {
        Properties prop = System.getProperties();
        // 设置http访问要使用的代理服务器的地址
        prop.setProperty("http.proxyHost", "183.45.78.31");
        // 设置http访问要使用的代理服务器的端口
        prop.setProperty("http.proxyPort", "8080");
        // 设置不需要通过代理服务器访问的主机,可以使用*通配符,多个地址用|分隔
        prop.setProperty("http.nonProxyHosts", "localhost|192.168.0.*");
        // 设置安全访问使用的代理服务器地址与端口
        // 它没有https.nonProxyHosts属性,它按照http.nonProxyHosts 中设置的规则访问
        prop.setProperty("https.proxyHost", "183.45.78.31");
        prop.setProperty("https.proxyPort", "443");
        // 使用ftp代理服务器的主机、端口以及不需要使用ftp代理服务器的主机
        prop.setProperty("ftp.proxyHost", "183.45.78.31");
        prop.setProperty("ftp.proxyPort", "21");
        prop.setProperty("ftp.nonProxyHosts", "localhost|192.168.0.*");
        // socks代理服务器的地址与端口
        prop.setProperty("socksProxyHost", "183.45.78.31");
        prop.setProperty("socksProxyPort", "1080");
        // 设置登陆到代理服务器的用户名和密码
        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() {
            return new PasswordAuthentication(user, password.toCharArray());
        }
    }

}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索服务器
, 代理
, 端口
, java https,
, https java
, password
, 设置http代理
, prop
, 代理https
setProperty
java 设置代理、java 设置代理ip、java jsoup设置代理ip、java设置代理服务器、java 设置http代理,以便于您获取更多的相关知识。

时间: 2024-08-09 17:15:45

java中如何设置代理的相关文章

java代码-求助java中窗体设置颜色的多种方法

问题描述 求助java中窗体设置颜色的多种方法 panel.setBackground(new Color(204,204,255));可以用数字来设置颜色?

使用JAVA中的动态代理实现数据库连接池

动态|数据|数据库|数据库连接 数据库连接池在编写应用服务是经常需要用到的模块,太过频繁的连接数据库对服务性能来讲是一个瓶颈,使用缓冲池技术可以来消除这个瓶颈.我们可以在互联网上找到很多关于数据库连接池的源程序,但是都发现这样一个共同的问题:这些连接池的实现方法都不同程度地增加了与使用者之间的耦合度.很多的连接池都要求用户通过其规定的方法获取数据库的连接,这一点我们可以理解,毕竟目前所有的应用服务器取数据库连接的方式都是这种方式实现的.但是另外一个共同的问题是,它们同时不允许使用者显式的调用Co

Java中的动态代理模式

前言: 最近一直在分析hadoop的RPC机制.在hadoop中,DataNode和NameNode之间的控制信息的交流是通过RPC机制完成的,采用的是动态代理和java NIO的方式.DataNode端是通过获得NameNode的代理,通过该代理和NameNode进行通信的,为了更好的分析hadoop的RPC机制我想先分析一下动态代理是怎么实现.下面就是动态代理的最最简单的代码实现,我们一起来看看吧. 代码如下: package cn.xiaolu; import java.lang.refl

java中怎么设置文件权限

检查文件权限允许: 1.file.canExecute(); – 返回true,文件是可执行的,false 则不是. 2.file.canWrite(); – 返回true,文件是可写的,false 则不是. 3.file.canRead(); – 返回true,文件是可读的,false 则不是. 设置文件权限: 1.file.setExecutable(boolean); – true允许执行操作; false则是禁止它. 2.file.setReadable(boolean); – true

十分钟理解Java中的动态代理_java

若代理类在程序运行前就已经存在,那么这种代理方式被成为 静态代理 ,这种情况下的代理类通常都是我们在Java代码中定义的. 通常情况下, 静态代理中的代理类和委托类会实现同一接口或是派生自相同的父类. 一.概述1. 什么是代理我们大家都知道微商代理,简单地说就是代替厂家卖商品,厂家"委托"代理为其销售商品.关于微商代理,首先我们从他们那里买东西时通常不知道背后的厂家究竟是谁,也就是说,"委托者"对我们来说是不可见的;其次,微商代理主要以朋友圈的人为目标客户,这就相当

深入解析java中的静态代理与动态代理_java

java编码中经常用到代理,代理分为静态代理和动态代理.其中动态代理可以实现spring中的aop. 一.静态代理:程序运行之前,程序员就要编写proxy,然后进行编译,即在程序运行之前,代理类的字节码文件就已经生成了 被代理类的公共父类 复制代码 代码如下: package staticproxy;public abstract class BaseClass {    public abstract void add();} 被代理类 复制代码 代码如下: package staticpro

关于java中的静态代理和动态代理的疑问

问题描述 本人java还未入门者,看到java的反射这一块,里面介绍java的静态代理和动态代理,看的一知半解,有点没想明白的是,动态代理相对于静态代理到底有哪些优势,使用反射机制生成动态代理类,能实现的功能,用静态代理类也可以实现.动态代理不需要写代理类,但是需要写InvocationHandler类,以我的观点看,使用动态代理反而使代码更加难以理解.还请各位大侠给以指点,不胜感激! 解决方案 说一下我对这个问题的看法吧.代理应用的情况有以下几种: 访问控制 远程访问 加载开销比较大的资源(加

Java中如何设置session

问题描述 1.在tomcat-->conf-->servler.xml文件中定义: <Contextpath="/test"docBase="/test" defaultSessionTimeOut="3600"isWARExpanded="true" isWARValidated="false"isInvokerEnabled="true" isWorkDirPers

android控件-android中xml设置控件的属性和java文件里设置控件的属性有何不同

问题描述 android中xml设置控件的属性和java文件里设置控件的属性有何不同 android中xml设置控件设置的属性和java文件里设置控件的属性有何不同 是不是java文件里设置可以改变动态的改变控件位置,文字颜色,文字大小 而在xml文件设置之后就无法改变 那具体在java文件设置的属性是如何改变的呢 解决方案 java中可以重新设置去改变xml的设置.但是xml不能去改变java中的设置. 解决方案二: 你可以这样理解,xml设置以后基本不会改变,如果会改变,就要在java里面设