java网络代理

import java.io.IOException;  
import java.io.InputStream;  
import java.net.InetSocketAddress;  
import java.net.MalformedURLException;  
import java.net.Proxy;  
import java.net.ProxySelector;  
import java.net.SocketAddress;  
import java.net.URI;  
import java.net.URISyntaxException;  
import java.net.URL;  
import java.net.URLConnection;  
import java.util.List;  
import java.util.Properties;  
 
public class NetProxy  
{  
// 测试本地JVM的网络缺省配置  
public void setLocalProxy()  
{  
Properties prop = System.getProperties();  
//设置http访问要使用的代理服务器的地址  
prop.setProperty("http.proxyHost", "10.10.0.96");  
//设置http访问要使用的代理服务器的端口  
prop.setProperty("http.proxyPort", "8080");  
//设置不需要通过代理服务器访问的主机,可以使用*通配符,多个地址用|分隔  
prop.setProperty("http.nonProxyHosts", "localhost|10.10.*");  
 
//设置安全访问使用的代理服务器地址与端口  
//它没有https.nonProxyHosts属性,它按照http.nonProxyHosts 中设置的规则访问  
prop.setProperty("https.proxyHost", "10.10.0.96");  
prop.setProperty("https.proxyPort", "443");  
 
//使用ftp代理服务器的主机、端口以及不需要使用ftp代理服务器的主机  
prop.setProperty("ftp.proxyHost", "10.10.0.96");  
prop.setProperty("ftp.proxyPort", "2121");  
prop.setProperty("ftp.nonProxyHosts", "localhost|10.10.*");  
 
//socks代理服务器的地址与端口  
prop.setProperty("socksProxyHost", "10.10.0.96");  
prop.setProperty("socksProxyPort", "1080");  
}  
 
// 清除proxy设置  
public void removeLocalProxy()  
{  
Properties prop = System.getProperties();  
prop.remove("http.proxyHost");  
prop.remove("http.proxyPort");  
prop.remove("http.nonProxyHosts");  
 
prop.remove("https.proxyHost");  
prop.remove("https.proxyPort");  
 
prop.remove("ftp.proxyHost");  
prop.remove("ftp.proxyPort");  
prop.remove("ftp.nonProxyHosts");  
 
prop.remove("socksProxyHost");  
prop.remove("socksProxyPort");  
}  
 
//  
 
// 测试http  
public void showHttpProxy(Object... proxy)  
{  
URL url = null;  
try  
{  
url = new URL("http://blog.csdn.com/smallnest");  
}  
catch (MalformedURLException e)  
{  
return;  
}  
try  
{  
URLConnection conn = null;  
switch (proxy.length)  
{  
case 0:  
conn = url.openConnection();  
break;  
case 1:  
conn = url.openConnection((Proxy) proxy[0]);  
break;  
default:  
break;  
}  
 
if (conn == null)  
return;  
 
conn.setConnectTimeout(3000); // 设置连接超时时间  
InputStream in = conn.getInputStream();  
byte[] b = new byte[1024];  
try  
{  
while (in.read(b) > 0)  
{  
System.out.println(new String(b));  
}  
}  
catch (IOException e1)  
{  
}  
}  
catch (IOException e1)  
{  
e1.printStackTrace();  
}  
 
}  
 
// 测试ftp  
public void showFtpProxy(Object... proxy)  
{  
URL url = null;  
try  
{  
url = new URL("ftp://ftp.tsinghua.edu.cn");  
}  
catch (MalformedURLException e)  
{  
return;  
}  
try  
{  
URLConnection conn = null;  
switch (proxy.length)  
{  
case 0:  
conn = url.openConnection();  
break;  
case 1:  
conn = url.openConnection((Proxy) proxy[0]);  
break;  
default:  
break;  
}  
 
if (conn == null)  
return;  
 
conn.setConnectTimeout(3000); // 设置连接超时时间  
InputStream in = conn.getInputStream();  
byte[] b = new byte[1024];  
try  
{  
while (in.read(b) > 0)  
{  
System.out.println(new String(b));  
}  
}  
catch (IOException e1)  
{  
}  
}  
catch (IOException e1)  
{  
e1.printStackTrace();  
}  
 
}  
 
// 得到一个proxy  
public Proxy getProxy(Proxy.Type type, String host, int port)  
{  
SocketAddress addr = new InetSocketAddress(host,port);  
Proxy typeProxy = new Proxy(type, addr);  
return typeProxy;  
}  
 
public static void main(String[] args)  
{  
NetProxy proxy = new NetProxy();  
//测试代理服务器  
proxy.setLocalProxy();  
proxy.showHttpProxy();  
 
//下面两行是清除系统属性,而通过Proxy类指定代理服务器  
// proxy.removeLocalProxy  
//proxy.showHttpProxy(proxy.getProxy(Proxy.Type.SOCKS,"10.10.0.96",1080));  
 
 
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值