`
guohf
  • 浏览: 406697 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java网络代理

    博客分类:
  • 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));  
 
 
}  

分享到:
评论

相关推荐

    java网络爬虫 网络代理

    一个简单的网络爬虫,获取代理信息以及验证代理是否可以! GetAgentTask.java main 方法测试

    基于Java实现的代理服务器

    基于Java实现的代理服务器,实现socks4,socks5协议

    java网络代理源代码

    自己开发,自己用于调试的源代码。主要用于调试监控网络的数据。可以做为一个简单的代理,监控工具。 源代码比较简单,大家需要的话可供学习使用。

    java版网络代理源码

    java开发,使用netty做网络层,用作代理服务器。实现网络代理工能。

    Java网络爬虫抓取代理ip

    通过Java网络爬虫爬取指定代理ip网上的ip,利用了jsoup、httpclient技术实现

    JAVA 通过proxy代理方式访问internet资源

    JAVA 通过proxy代理方式访问internet资源,

    java设置代理服务器

    java在网络编程时设置代理服务器,并设置代理账号和密码。

    Java网络编程(第3版) 中文版

    它还涵盖了Java对网络代理、Web cookie和URL缓存的支持。 《Java网络编程》不仅仅是对API的解释:它还展示了如何使用API。本书有很多示例,包含了几千行可以实际工作的代码(所有代码都可以在线获得),实现了功能...

    Java网络高级编程

    本书第1-3章介绍了网络进程通信的主要技术。其中,第1章介绍网络进程通信的基础类...本书可作为高校计算机应用、网络信息、电子商务技术等专业级学生及研究生的教材,也可以作为Java网络编程爱好者的自学参考书。

    JAVA网络编程.第3版.哈诺德著.扫描版.含源码

    《Java网络编程》第三版会为你介绍Java网络API的最新特性。本书讨论了JDK1.4和1.5(现在已命名为J2SE5)中所做的所有修改和增补。本书内容全面,涵盖了从网络基础知识到远程方法调用(RMI)等各方面的内容,书中章节...

    java使用proxy类设置代理ip

    获取网络资源,使用动态代理ip解决单个ip访问次数限制问题

    网络代理,网络爬虫刷IPJava版,最新有效刷ip方法

    网络代理,网络爬虫刷IPJava版,最新有效刷ip方法 Java代码,包括代理ip采集,设置代理服务、获取列表,刷IP,网页解析等知识

    java网络编程培训文档

    《Java网络编程》不仅仅是对API的解释:它还展示了如何使用API。《Java网络编程》(第3版)有很多示例,包含了几千行可以实际工作的代码(所有代码都可以在线获得),实现了功能完整的网络客户端和服务器。无论是希望...

    Java的HTTP代理服务器 Smart Cache

    Java的HTTP代理服务器 Smart Cache

    使用Java动态代理实现一个简单的网络请求拦截器.txt

    这个代码实现了一个简单的网络请求拦截器,使用了Java的动态代理机制。在这个例子中,我们创建了一个`HttpRequestInterceptor`类来实现`InvocationHandler`接口,并在`invoke()`方法中实现了对目标方法的拦截操作。...

    Java网络编程(第3版) 中文版 文件2

    它还涵盖了Java对网络代理、Web cookie和URL缓存的支持。 《Java网络编程》不仅仅是对API的解释:它还展示了如何使用API。本书有很多示例,包含了几千行可以实际工作的代码(所有代码都可以在线获得),实现了功能...

    编写简单的代理服务器(java源码)

    代理服务器打开一个端口接收浏览器发来的访问某个站点的请求,从请求的字符串中解析出用户想访问哪个网页,让后通过URL对象建立输入流读取相应的网页内容,最后按照web服务器的工作方式将网页内容发送给用户浏览器 ...

    Java代理服务器:这是用Java编写的简单HTTPHTTPS代理服务器

    Java HTTP / HTTPS代理服务器代理服务器代理服务器是位于客户端和客户端希望从中检索文件的远程服务器之间的服务器。 来自客户端的所有流量都被发送到代理服务器,并且代理服务器代表客户端向远程服务器发出请求。 ...

    基于 Java 的 NAT 软交换代理及存储集群系统研究

    为此,探讨 NAT 种类、应用及核心思想,及用 Java 网络包 java.net 实现 NAT 软交换的思路和方法,并根据网络存储系统安全问题,提出基于 NAT 的存储集群架构,分析其运行机制算法。模拟测试结果表明,基于 NAT 可在...

Global site tag (gtag.js) - Google Analytics