创建连接是HttpsURLConnection,怎么设置代理服务器
java设置代理
package compathtest;
import javaioBufferedInputStream;
import javaioBufferedOutputStream;
import javaioFileOutputStream;
import javanetURL;
import javanetURLConnection;
public class TURLConnection {
public static void main(String args[]) throws Exception
{
//设置代理上外网
SystemgetProperties()put("proxySet", "true");
SystemgetProperties()put("proxyHost", "1723117014");
SystemgetProperties()put("proxyPort", "8080");
/
如果需要验证用户
//AuthenticatorsetDefault(new MyAuthenticator());
/
URL url=new URL("http://wwwcsdnnet");
URLConnection urlCon=urlopenConnection();
/
方法1,一次过读取所有信息
/
BufferedInputStream bis=new BufferedInputStream(urlCongetInputStream());
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("C:aahtm"));
byte b[]=new byte[bisavailable()];
bisread(b);
boswrite(b);
bosflush();
bisclose();
bosclose();
/
方法2,一个个字节地读取
/
// InputStream is=urlCongetInputStream();
// FileOutputStream fos=new FileOutputStream("C:bbhtm");
// int tmp=0;
// while((tmp=isread())!=-1)
// {
// foswrite(tmp);
// }
// fosflush();
// fosclose();
// isclose();
}
}
package compathtest;
import javanetAuthenticator;
import javanetPasswordAuthentication;
public class MyAuthenticator extends Authenticator {
private String name ;
private String password;
public MyAuthenticator() {
super();
// TODO Auto-generated constructor stub
}
public MyAuthenticator(String name, String password) {
super();
// TODO Auto-generated constructor stub
thisname = name;
thispassword = password;
}
public String getName() {
return name;
}
public void setName(String name) {
thisname = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
thispassword = password;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(thisgetName(),thisgetPassword()toCharArray());
}
}
步骤一:依次点击“开始”→“控制面板”→“网络和 Internet”,点击“Internet 选项”。
步骤二:在“Internet 选项”对话框下,点击“连接”选项卡,然后点击“局域网设置”按钮。
步骤三:在弹出的“局域网(LAN)设置”对话框下,选中“为 LAN 使用代理服务器”的复选框。然后点击“高级”按钮。
步骤四:在弹出的“代理服务器设置”对话框下,设置不同类型的代理服务器(如 HTTP、HTTPS 或 FTP)。然后输入“要使用的代理服务器地址”,点击“确定”按钮即可。
或者:
1、利用***的方法:一种是去网上下载***软件,再购买账号登录,最后选择线路实现代理。此种方法极为简单,不作赘述。现讨论另外一种方法。先单击Windows任务栏右下角网络图标,再单击“打开网络和共享中心”。
2、在网络和共享中心界面下,单击“设置新的连接或网络”,选择“连接到工作区”,单击“下一步”。
3、选择“否,创建新连接”,单击“下一步”。
4、单击“使用我的Internet连接(***)”。
5、输入Internet地址,也就是你申请的代理服务器地址,可以是ip地址,也可以是域名,还可以是MAC地址。目标名称根据自己意愿修改。
6、输入你申请的账号和密码,复选框以及域(可选)根据个人意愿填写,单击“连接”,验证成功后即可成功连接到代理服务器。
7、利用控制面板中的Internet选项来设置代理:打开控制面板,单击“网络和Internet”,再单击“Internet选项”,打开“Internet属性”窗口。
8、单击“连接”选项卡,再单击下方的“局域网设置”,弹出“局域网(LAN)设置”窗口。
9、在为LAN使用代理服务器前的复选框打钩,去网上搜索常用的代理服务器,在地址中填入ip地址,端口中填入代理服务器的端口,最后单击“确定”即可。
10、通过以上两种方法,都成功地实现了代理。
从JDK15开始,Java在javanet包下提供了Proxy和ProxySelector两个类,其中Proxy代表一个代理服务器,可以在打开URLConnection连接时指定所用的Proxy实例,也可以在创建Socket连接时指定Proxy实例。而ProxySelector代表一个代理选择器,它提供了对代理服务器更加灵活的控制,它可以对HTTP、HTTPS、FTP、SOCKS等分别设置,而且还可以设置不需要通过代理服务器的主机和地址。通过使用ProxySelector可以达到像在Internet Explorer、FireFox等软件中设置代理服务器类似的效果。
代理服务器的功能就是代理网络用户去取得网络信息。我们使用网络浏览器直接连接其他Internet站点取得网络信息时,通常需要发送Request请求来等到响应。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取得网页数据而是向代理服务器发出请求,Request请求会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并送回给网络浏览器。而且,大部分代理服务器都具有缓冲的功能,就好像一个大的Cache,它有很大的存储空间,它不断将新取得的数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。归纳起来代理服务器主要提供如下两个功能:
突破自身IP限制,对外隐藏自身IP地址。突破IP限制包括访问国外受限站点,访问国内特定单位、团体的内部资源。
提高访问速度,代理服务器提供的缓冲功能可以避免每个用户都直接访问远程主机,从而提高客户端访问速度。
1751 直接使用Proxy创建连接
Proxy有如下一个构造器:Proxy(ProxyType type, SocketAddress sa):创建表示代理服务器的Proxy对象。而sa参数指定代理服务器的地址,其中type是该代理服务器的类型,该服务器类型有如下三种:
(1)ProxyTypeDIRECT:表示直接连接或缺少代理。
(2)ProxyTypeHTTP:表示高级协议的代理,如 HTTP 或 FTP。
(3)ProxyTypeSOCKS:表示 SOCKS(V4 或 V5)代理。
一旦创建了Proxy对象之后,程序就可以在使用URLConnection打开连接时,或创建Socket连接时传入一个Proxy对象,作为本次连接所使用的代理服务器。
其中URL包含了一个URLConnection openConnection(Proxy proxy)方法,该方法使用指定的代理服务器来打开连接;而Socket则提供了一个Socket(Proxy proxy)构造器,该构造器使用指定的代理服务器创建一个没有连接的Socket对象。
下面以URLConnection为例来介绍如何在URLConnection中使用代理服务器。
程序清单:codes/17/17-5/ProxyTestjava
上面代码第一行粗体字代码创建了一个Proxy对象,第二行粗体字代码就是用Proxy对象来打开URLConnection连接。除此之外,该程序的其他地方就是对URLConnection的使用了。由此可见, JDK15提供了对代理服务器很好的支持。
1752 使用ProxySelector选择代理服务器
前面介绍的直接使用Proxy对象可以在打开URLConnection或Socket时指定代理服务器,使用这种方式需要每次打开连接都显式设置代理服务器。如果想让系统打开连接时总是具有默认的代理服务器,则可以使用javanetProxySelector,它可以它根据不同的连接使用不同的代理服务器。
系统默认的ProxySelector会检测各种系统属性和URL协议,然后决定怎样连接不同的主机。当然,程序也可以调用ProxySelector类的setDefaultI()静态方法来设置默认代理服务器,也可以调用getDefault()方法获得系统当前默认的代理服务器。
程序可以通过System类来设置系统的代理服务器属性,关于代理服务器常用的属性名有如下三个:
httpproxyHost:设置HTTP访问所使用的代理服务器地址。该属性名的前缀可以改为https、ftp等,分别用于设置HTTP访问、安全HTTP访问和FTP访问所用的代理服务器地址。
httpproxyPort:设置HTTP访问所使用的代理服务器端口。该属性名的前缀可以改为https、ftp等,分别用于设置HTTP访问、安全HTTP访问和FTP访问所用的代理服务器端口。
httpnonProxyHosts:设置HTTP访问中不需要使用代理服务器的远程主机,可以使用通配符,如果有多个地址,多个地址用竖线(|)分隔。
下面程序示范了通过改变系统属性来改变默认的代理服务器。
程序清单:codes/17/17-5/ ProxySelectorTestjava
上面程序中三行粗体字代码设置Java打开HTTP访问时的代理服务器属性,其中前两行代码设置代理服务器的地址和端口,第三行代码设置该代理HTTP访问哪些主机时不需要使用代理服务器。上面程序的①行代码处直接打开一个URLConnection,但系统会为打开该URLConnection时使用代理服务器。
运行上面程序,将会看到程序长时间等待,因为192168096通常并不是有效的代理服务器(当然,如果读者运行的机器恰好可以使用地址为192168096的代理服务器又另当别论)。
系统提供了默认的ProxySelector子类作为代理选择器,开发者可以实现自己的代理选择器,程序可以通过继承ProxySelector来实现自己的代理选择器。继承ProxySelector需要重写两个方法:
List<Proxy> select(URI uri):实现该方法让代理选择器根据不同的URI来使用不同的代理服务器,该方法就是代理选择器管理网络连接使用代理服务器的关键。
connectFailed(URI uri, SocketAddress sa, IOException ioe):当系统通过默认的代理服务器建立连接失败后,代理选择器将会自动调用该方法。通过重写该方法可以对连接代理服务器失败的情形进行处理。
系统默认的代理服务器选择器也重写了connectFailed方法,它重写该方法的处理策略是:当系统设置的代理服务器失败时,默认代理选择器将会采用直连的方式连接远程资源,所以当运行上面程序等待了足够长时间时,程序依然可以打印出该远程资源的所有内容。
以CCProxy为例,代理服务器软件CCProxy使用方法如下:
1、首先要保证每台机器都指定了一个固定的IP地址。
2、是找一个CCProxy的安装程序。
运行下载后的Ccproxysetupexe就可以一步步进行安装,只是在最后一步选择语言时要选择ChineseGB即为中文简体。安装完成后,桌面有一个CCProxy的绿色图标,双击即可启动CCProxy了。绿色的网格坐标将会出现**的曲线表示网络数据流量。
客户机的设置
1、对TCP/IP协议的属性进行设置。
方法:右击“网上邻居”,选择“属性”,双击网卡对应的“TCP/IP协议”,选择“DNS”标签。设置如下:选中“启用DNS”;“主机”中填入服务器名称;并在下面的“DNS服务器搜索顺序”中填入服务器的IP地址,本例为“19216801”,然后单击[填加];单击[确定]结束DNS设置;再次单击[确定],结束对网络属性的设置。这时需要重新启动计算机。
2、重新启动后,右击桌面上的IE图标,选择“属性”。在接下来的“Internet属性”对话框中进行如下设置:选中“连接”标签;单击“局域网设置” 按钮;选中“使用代理服务器”;单击“高级”;在“服务器类型”中分别填入:HTTP为19216801,端口为808;FTP为 19216801,端口为2121;Socks为19216801,端口为1080;然后单击[确定]完成对IE的设置。
上网浏览看一下。
成了上述的操作后,将服务器连接到因特网上,再启动CCProxy,客户机就可以通过IE自由在网际之间穿梭了,想要停止代理服务只需单击[停止]按钮即可。
希望我的回答可以帮助你,望采纳!
随着Internet的快速发展,企业、学校和个人对网络资源和服务的需求呈几何级数的增长。连入因特网的计算机越来越多,促进信息产业发展的同时改变了我们生活、学习和工作的方式,因特网成为生活不可或缺的一部分。网络高速发展同时伴生了IP地址耗尽、海量主机同时访问带宽的争用和各单位网络费用剧增等问题。例如:学术资源丰富、信息全面的教育科研网(CERNET)下属单位按照访问流量收费(出国流量更贵),巨量的网络流量将带来沉重的费用负担。同时人们日益关注网络安全运行这个重要前提。互联网上常出现的黑客和病毒等不安全行对各单位直接联网电脑中安全要求较高的数据和内部网(Intranet)的安全造成严重威胁。如何解决以上问题、提高网络安全性,更安全、快捷经济的提高网络的利用率呢?建立局域网代理服务器(Proxy Server)可以解决上述问题,本文就基于软件的方案做一个探讨。
一、 局域网代理服务器的功能和作用:
代理服务器是伴随着Internet应运而生的网络服务技术,对校园局域网、小企业网络和家庭网络用户非常实用,可以缓解IP地址不足、加快客户机(Client)访问速度、控制网络流量节约经费、作为初级网络防火墙隔断非法访问、阻止一般黑客入侵本地网。并提供HTTP、SOCKS4/5、TELNET、FTP、DNS及邮件和新闻代理。通过软硬件协同可实现:
1、设置用户验证和记帐:按用户分别记帐,未登记的用户无权通过代理服务器访问Internet网。统计用户的访问时间、地址、信息流量等。
2、用户管理:设置用户的不同访问权限实现分级管理,过滤外界或内部的Internet地址。管理好员工上班时间玩上网游戏、QQ聊天等影响工效且令人头痛的问题。通过设置代理服务器的一些参数,即能有效实现。针对用户水平开放WWW、FTP、Telnet、E-mail中不同使用权限,还可以过滤网上不良站点,使青少年只能访问固定IP段或域(Domain)范围的信息,使学生远离网上色情暴力等不良信息污染。
3、增加缓冲器(Cache),减少流量提高访问速度:代理服务器不仅能解决共享上网,还可以创建经常访问网址的缓冲区(能高达几个GB或更大),外界新信息通过的同时保存在缓冲区,有用户再访问相同信息时,直接由缓冲区取出传给用户,据统计大多数信息(70%以上)是常用的可直接读取的,只有少量需要从外界取得。可以数十倍的提高网速和热门站点的效率,减少本节点的流量,极大的降低成本。
4、连接Internet与Intranet(内部网),担任防火墙 (FireWall) :内部网用户通过代理服务器访问因特网,都映射为一个IP地址,外界不能直接访问到内部网电脑,有选择地将允许的访问传输给内部网。在网络间实施访问控制、过滤非法信息流、允许合法信息流通,一定程度上实现防火墙的功能。
5、共享上网,节省IP开销:所有客户机都申请1个地址连入Internet必将造成IP地址的耗尽,使用代理服务器局域网内所有用户对外只占一个IP,降低了租用过多IP地址的网络维护成本。若干台计算机连成一个局域网后通过代理服务器共用IP地址连接Internet,最大限度的节约IP地址、节省单位的上网费用、节点占用费、折旧费等。多台计算机通过一根线连接Internet,代理服务器是很合适的解决方案。
二、局域网代理服务器的实现原理:
代理服务器(Proxy Server):指自身不能执行某种操作的计算机(称为客户机),通过一台服务器来执行该操作,该服务器即为代理服务器。工作机制像生活中的代理商,假设有机器A(client),希望获取B(Internet)的数据,代理服务器为C(Proxy Server),具体运作过程是:A最终要获得B的数据,它首先与C建立连接,C接收到A的数据请求后,与B建立连接并下载A需要的B机的数据到本地,然后再传送给A,完成代理。
实际代理服务器的功能比以上简单描述要复杂得多。目前绝大部分Internet应用都可以通过代理实现。在局域网内连接到外界的服务器上安装配置软件即可实现代理。目前代理服务器软件功能十分强大、成熟,供选择的主要有:WinGate、CCProxy、WinRoute、SyGate等。可以提供TCP/IP、IPX、NETBEUI通信协议、WWW浏览、FTP文件传输、Telnet远程登录、电子邮件收发、TCP/UDP端口映射、SOCKS 代理等服务。
三、 局域网代理服务器的示例:
该方案在具备联网条件的计算机上安装设置服务器软件。以上软件各有特点,本方案从重视信息安全角度出发使用国产软件CCProxy (北京遥志wwwyoungzsoftcom),功能强大全面全中文界面简单易用,安装设置简单。充当服务器的计算机配置要求不高,操作系统可选Windows 98/Me/NT/2000/XP,如果选Win95,需要先安装winsock2;服务器通过Modem、ADSL、ISDN、DDN或专线等可以直接连接到Internet;服务器与客户机都安装TCP/IP协议且连通良好。
硬件设备:一台作为服务器的计算机(配置高些可以提高速度)和多台客户机,所有电脑采用星形拓扑结构通过网线连接到一个集线器(HUB)上,构成一个局域网。下面介绍软件安装和设置。
1、下载软件后,在B机上运行CCPoxy即可自行安装,在弹出的窗口中单击账号,选择添加/编辑,在用户名栏输入A机名称,在用户IP中输入自定的地址,这里可以参照A机的IP来考虑,如果不知道A机的IP,可在A机中运行Winipcfg命令查看,以笔者的IP例,ISP 提供的IP为10111025,那么A机的IP可以指定为10111029,记住此地址,确定后进入设置选项。
2、软件默认的HTTP端口号为808,实践中发现造成A机经常掉线的缺陷,改为711就可以避免。屏蔽其他端口,只留 8080、21、1080等必要端口。
3、最后一步,打开A机,用右键点击网上邻居àTCP/IPà属性àDNS配置à启用DNSà主机名(填B机名)à在DNS服务器搜索顺序中输入B机同样的值,按下添加按钮,然后在IP地址一栏中输入自定义的IP地址(10111029),子网掩码中输入2552552550。
4、现在打开AB两机,运行B机内CCProxy(会自动最小化,不影响上网),在客户机A上机运行IE,在工具菜单中选择à工具àINTERNET选项à连接à局域网设置,点击"使用代理服务器"前面的方框后,输入B机的IP,端口号填711,确定就可以了。
5、以上步骤完成后,A机就可以通过B连接到Internet,软件的EMAIL、FTP参数均可类推设置,局域网中剩余计算机的IP地址累加其他参数一样。至此,所有安装设置工作完成。
6、技巧:双击软件界面的绿色网格实时观测监控代理用户的流量;在IP帐号管理中实现访问权限限制和分层功能;支持客户端使用Outlook收发邮件;支持客户端拨号的自动启动和自动智能断线;通过日志统计上网时间和访问内容。还可以绑定IP/MAC(网卡物理号码)地址,IP与MAC不对应则拒绝其访问网络,防止用户乱改IP。修改ccproxyini文件可实现一些非常好用的高级功能。如:将Socks5UDP=1改为SOCKS5UDP=0,则所有客户机都不能用QQ聊天。为屏蔽非法用户设置http、socks的密码验证,在ccproxyini文件的[system]部分添加NeedAuth=1,文件最后添加一个[Auth]部分:
[Auth]/Count=1/UserName1=用户设定/Password1=用户设定/
其中Count表示有几个帐号需要设置。UserName1表示第一个帐号的用户名,Password1表示第一个帐号的密码。在软件的账号->允许部分->网站过滤中->站点过滤中加入ourgamecom;ourgamecom;6113663;20299160;202106182;2111449;202108255;可以屏蔽客户机访问联网游戏。在内容过滤中加入选定的文字过滤不良网站,可以减少对学生的负面影响。
四、 讨论:
1、方案的优点:该方案最经济,硬件安装简单,软件占用空间和资源很少,界面友好、设置简单、功能齐全,能完成所有TCP/IP网络连接。Log日记还能监察客户机访问过的站点。针对不同用户安排上网时间和带宽流量控制。有效过滤网站,有较高的安全性,非常适合政府部门、公司和学校。
2、方案的缺点:需占用一台电脑作服务器(Server);软件需要注册且选项设置需要时间熟悉;服务器(Server)软硬件的性能和工作状态可能影响速度。
实践证明,以ccproxy软件为基础的该应用方案,投入资金低、容易实施且稳定可靠。对于资金有限、硬件设备相对较弱又对因特网有一定需求的中、小型单位是一个理想的选择。
0条评论