http代理是什么意思关闭还是自动

自动脚本(pac)和手动设置Proxy的读取方式的java实现(http,tcp) - CSDN博客
自动脚本(pac)和手动设置Proxy的读取方式的java实现(http,tcp)

&&本文介绍两种proxy的配置方式以及读取方式的java代码实现
& 项目中配置Proxy用到了两种方式
配置代理服务器
使用自动配置脚本,也就是配置pac方式
&&两种方式的目的都是给本机配置代理服务器,而第二种方式在配置策略上更加灵活
&&无论使用哪种代理方式,我们讨论的代理类型都为以下三个方式:
&&DIRECT, HTTP(PROXY), SOCKS
二配置代理服务器
1通过手动方式配置代理服务器.
优点:简单,直观
缺点:适配性差,无法实现策略匹配
2设定规则:
当同时设定了HTTP和套接字(SOCKET)代理方式,优先读取到HTTP代理
只有当只设定了SOCKET代理方式,通过代码才能读取到Proxy的type为SOCKS
3读取代理地址方式:
List&String& uriList =newArrayList&String&();//加入不同协议去获取不同的代理的ip,port,type三个参数
//proxytype:http时为Proxy.Type.HTTP,socket时为Proxy.Type.SOCKS
uriList.add(&.hk&);
uriList.add(&socket://.hk&);//只有只设定了套接字代理才能读到
for (String uri : uriList) {//遍历两种协议地址
&&&&&&&&&&&&&&&if
&&&&&&&&&&&&&&&&&&&break;
&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&try
&&&&&&&&&&&&&&&&&&&&//ProxySelector的使用方法在
&&&&&&&&&&&&&&&&&&&&//有说明,用于读取proxy的信息
&&&&&&&&&&&&&&&&&&&l = ProxySelector.getDefault().select(new
java.net.URI(uri));
&&&&&&&&&&&&&&&}
catch (URISyntaxException e1) {
&&&&&&&&&&&&&&&&&&&e1.printStackTrace();
&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&for
(Iterator&Proxy& iter = l.iterator();iter.hasNext();) {
&&&&&&&&&&&&&&&&&&&Proxy proxy = iter.next();
&&&&&&&&&&&&&&&&&&&InetSocketAddress iNetAddr= (InetSocketAddress) proxy.address();
&&&&&&&&&&&&&&&&&&&if
(iNetAddr ==null) {
&&&&&&&&&&&&&&&&&&&&&&&//com.etnet.utilities.(this,&No
&&&&&&&&&&&&&&&&&&&&&&&// System.out.println(&detected
IE has NoProxy&);
&&&&&&&&&&&&&&&&&&&&&&&// NEED_PROXY =
&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&// NEED_PROXY =
&&&&&&&&&&&&&&&&&&&&&&&if
(proxy.type() ==Proxy.Type.SOCKS) {
&&&&&&&&&&&&&&&&&&&&&&&&&&&proxyHost
=iNetAddr.getHostName();
&&&&&&&&&&&&&&&&&&&&&&&&&&&proxyPort
=iNetAddr.getPort();
&&&&&&&&&&&&&&&&&&&&&&&&&&&proxyType
&&&&&&&&&&&&&&&&&&&&&&&&&&&System.out.println(&Found
a SOCKS proxyIP:port=& +proxyHost
+&:& +proxyPort);
&&&&&&&&&&&&&&&&&&&&&&&&&&&isSet =
&&&&&&&&&&&&&&&&&&&&&&&&&&&break;
&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&if
(proxy.type() ==Proxy.Type.HTTP) {
&&&&&&&&&&&&&&&&&&&&&&&&&&&proxyHost
=iNetAddr.getHostName();
&&&&&&&&&&&&&&&&&&&&&&&&&&&proxyPort
=iNetAddr.getPort();
&&&&&&&&&&&&&&&&&&&&&&&&&&&proxyType
&&&&&&&&&&&&&&&&&&&&&&&&&&&System.out.println(&Found
a HTTP proxyIP:port=& +proxyHost
+&:& +proxyPort);
&&&&&&&&&&&&&&&&&&&&&&&&&&&isSet =
&&&&&&&&&&&&&&&&&&&&&&&&&&&break;
&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&}
// end for
&&&&&&&&&&&}
三通过自动脚本pac文件设置代理
1通过自动脚本pac文件代理服务器.
优点:适配性强,灵活,可以通过策略实现访问不同域名使用不同代理服务器
缺点:需要了解js脚本
2设定规则:
&需要自己写一个js脚本(比如&file://d:/proxy.pac&)实现代理服务器选择的不同策略,然后按最上面一个图导入,具体规则请google一下
3读取代理地址方式:
&需要导入jre的lib/deploy.jar这个包
&&&&&&&BrowserProxyInfo b =
newBrowserProxyInfo();
&&&&&&&b.setType(ProxyType.AUTO);
&&&&&&&b.setAutoConfigURL(&file://d:/proxy.pac&);
&&&&&&&DummyAutoProxyHandler handler =
newDummyAutoProxyHandler();
&&&&&&&try
&&&&&&&&&&&handler.init(b);
catch (ProxyConfigException e1) {
&&&&&&&&&&&//TODO
Auto-generated catch block
&&&&&&&&&&&e1.printStackTrace();
&&&&&&&URL
&&&&&&&try
&&&&&&&&&&&// need add socket
&&&&&&&&&&&url =
new URL(&.hk&);
&&&&&&&&&&&ProxyInfo[] ps =handler.getProxyInfo(url);
&&&&&&&&&&&for
(ProxyInfo p : ps) {
&&&&&&&&&&&&&&&String[] info =p.toString().split(&:&);
&&&&&&&&&&&&&&&proxyHost
= info[0];
&&&&&&&&&&&&&&&proxyPort
= Integer.parseInt(info[1]);
&&&&&&&&&&&}
catch (MalformedURLException e) {
&&&&&&&&&&&//TODO
Auto-generated catch block
&&&&&&&&&&&e.printStackTrace();
四 HTTP链接中使用Proxy
&&第二部分和第三部分我们知道怎么获取到proxy的信息,第四第五部分我们来看看在HTTP连接和TCP连接时我们如何使用之前获取到的Proxy信息。
组建一个proxy实例
publicstaticvoid
constructProxy() {
&&&&&&&try
&&&&&&&&&&&InetSocketAddress iNetAddr =
new InetSocketAddress(proxyHost,proxyPort);
&&&&&&&&&&&if
(&SOCKS&.equals(proxyType))
&&&&&&&&&&&&&&&httpProxy
=new Proxy(Proxy.Type.SOCKS,
iNetAddr);
&&&&&&&&&&&}
(&HTTP&.equals(proxyType))
&&&&&&&&&&&&&&&httpProxy
=new Proxy(Proxy.Type.HTTP,
iNetAddr);
&&&&&&&&&&&}
catch (IllegalArgumentException ex) {
通过Authenticator完成代理的验证
&&&publicstaticclass
CustomAuthenticatorextends Authenticator {
&&&&&&&private
StringuserName =&&;
&&&&&&&private
Stringpassword =&&;
&&&&&&&public
CustomAuthenticator(StringuserName, String password) {
&&&&&&&&&&&super();
&&&&&&&&&&&this.userName
&&&&&&&&&&&this.password
&&&&&&&// Called when password authorization is needed
&&&&&&&protected
PasswordAuthenticationgetPasswordAuthentication(){
&&&&&&&&&&&returnnew
PasswordAuthentication(userName,password);
&&&&Authenticator.setDefault(newCustomAuthenticator(prouser,
propass));//关键代码,穿透proxy密码验证
建立http连接
urlConnection=(HttpURLConnection)url.openConnection(httpProxy);
五 TCP链接中使用Proxy
和上面一样组建Proxy实例
通过Authenticator完成代理的验证
建立tcp链接
代码如下:
if (proxy !=null)
&&&&&&&&&&&&&&&tcpSocket
=new Socket(proxy);
&&&&&&&&&&&Authenticator.setDefault(newCustomAuthenticator(proxyUserName,proxyUserPass));
&&&&&&&&&&&InetSocketAddress inet =
new InetSocketAddress(IP,PORT);
&&&&&&&&&&&tcpSocket.connect(inet,TCPCONNECT_TIMEOUT);
本文已收录于以下专栏:
相关文章推荐
一、设置系统代理
方法如下:
java -Dhttp.proxyHost=192.168.254.254  -Dhttp.proxyPort=; com.domain.Program
概述:主要是介绍下CAS4.0.0的版本和LDAP整合实现步骤
CAS4.0以下版本网上例子多的一比,随便找一下就知道该怎么配置了,也不难。但是4.0的版本网上的例子还是太少了,尤其中文的更是没有多...
一个PAC文件其实就是一个文本文件,最简单的格式就是包含一个叫FindProxyForURL的JScript函数,IE通过传入两个变量来调用这个函数,一个是用户浏览的地址URL全路经,一个是这个URL...
现在浏览器基本都支持PAC格式的代理脚本。本文仅介绍PAC脚本语法,并不解释使用方法。
参考文档:
https://en.wikipedia.org/wiki/Proxy_auto-config#...
前些天,同事给我抱怨,公司的GPO强制更改了笔记本的IE代理服务器,在办公室还好,一回家就上不了网了,必须手动更改代理设置,真是麻烦。我想了想,proxy.pac自动代理文件应该可以解决这个问题,于是...
用本本上网时,往返家里和单位,因为单位是用的代理上网,家里是直接连接.因此每次都要修改IE的代理设置,虽然是个小事,但是每次都要修改总是有点烦,于是参考GOOGLE,写了一个自动配置代理的脚本.这样无...
SwitchyOmega + Pac 访问google
工程师必备的技能基于众所周知的原因,作为计算机开发工程师必须要掌握一个基本技能FQ,很多必要的网站都需要翻越GFW才能正确打开。关于这项基本技能的使用,可以做一下简单的介绍。目前比较方便的翻墙方法有如...
最近在做一个内网和外网通信的工具,其中内网需要用http代理才能连接外网
所以在TcpClient的使用上,就遇到了麻烦,不能直接连接外网主机。
具体方法如下:
var client=new TcpC...
Centos网络配置(手动设置和自动获取)IP的2种方法
作者:Smile 发布于: 21:15 分类:linux
    最近自己装了个最新的Centos版本6.3,但是...
他的最新文章
讲师:何宇健
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 苹果http 关闭自动区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信