`
guohf
  • 浏览: 418106 次
  • 性别: 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网络代理源代码

    Java网络代理源代码是用于创建一个代理服务器的程序,它可以帮助开发者在调试和监控网络数据时获取必要的信息。这个源代码特别适用于理解如何利用Java的Socket编程实现网络代理功能。以下将详细介绍Java Socket和...

    java网络爬虫 网络代理

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

    java版网络代理源码

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

    Java网络爬虫抓取代理ip

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

    java操作IE代理

    这个"java操作IE代理"的主题涉及到如何在Java程序中控制IE的网络代理设置,这通常需要利用特定的库和方法来实现。下面将详细介绍这个知识点。 首先,"registry.jar"可能是一个包含了对Windows注册表操作功能的Java...

    Java写http代理服务器

    本主题将深入探讨如何使用Java语言来编写这样的代理服务器。以下是对这个主题的详细解析: 首先,理解HTTP代理服务器的基本原理是必要的。HTTP代理服务器作为客户端与目标服务器之间的中介,它接收客户端的HTTP请求...

    Java代理服务器程序

    Java代理服务器程序是一种用于转发网络请求的应用,它在客户端与目标服务器之间起到中介的作用。这样的设计使得用户可以通过代理服务器访问互联网,从而实现多种功能,如匿名浏览、负载均衡、缓存优化、网络监控等。...

    Java 静态代理模式

    Java静态代理模式是一种设计模式,它允许我们为一个对象提供一个代理,以便增强或扩展其功能,同时不改变原有对象的代码。在Java中,静态代理是通过在代理类中显式实现目标接口来实现的。下面将详细介绍静态代理模式...

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

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

    java动态代理详细解析

    - **RPC框架**:在网络通信中,动态代理可以用于拦截方法调用,进行序列化、网络传输等操作。 - **缓存策略**:在数据访问层,可以使用动态代理实现缓存策略,如方法调用前检查缓存,避免重复计算。 - **事务管理...

    java实现的代理服务器

    Java 实现的代理服务器是一种基于Java编程语言的网络服务,它的主要作用是充当客户端与目标服务器之间的中介。这种代理服务器可以用于多种用途,包括数据抓取、匿名浏览、网络安全管理和性能优化等。在这个实例中,...

    java获取浏览器代理设置

    在Java编程中,获取浏览器的代理设置是一项重要的任务,特别是在开发网络应用或者需要模拟用户网络环境的场景下。本文将详细讲解如何利用Java来获取浏览器的代理设置,并结合提供的文件`registry.jar`和`ICE_...

    java设置代理服务器

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

    java实现的代理程序源码

    Java 实现的代理程序是一种网络通信工具,它允许客户端通过代理服务器访问其他网络资源,以提高安全性、匿名性或优化网络性能。...开发者可以通过阅读和学习这些源码,进一步理解Java网络编程和代理服务器的工作原理。

    java LAN使用代理服务器

    `Proxy`类是Java中表示网络代理的抽象类,它可以是HTTP、SOCKS或任何其他类型的代理。你可以通过以下方式创建一个`Proxy`对象: ```java Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(...

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

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

    java socket编写的上网代理

    Java Socket 编写的上网代理是一种基于TCP/IP协议的网络通信方式,它允许应用程序通过Socket连接到其他网络服务,实现数据的传输。在这个特定的项目中,开发者使用Java语言实现了代理服务器的功能,允许用户通过该...

    java HTTP代理源码

    - **Java网络编程书籍**:如《Java Network Programming》等,深入学习Java网络编程基础知识。 - **开源项目参考**:如 squid 或者 http-proxy-servlet 等,研究成熟的代理服务器实现。 通过这个项目,开发者可以...

    Java编写的HTTP代理

    总的来说,Java编写的HTTP代理是一个涉及网络编程、HTTP协议理解、多线程和可能的加密技术的复杂项目。通过这样的代理,用户能够实现对网络访问的控制和优化,同时也为开发者提供了一个学习和实践网络编程的好机会。

    Java采集最新动态代理IP

    总的来说,Java爬虫结合Jsoup实现动态IP代理是一个涉及网络通信、HTML解析、数据处理和代理机制等多个方面的综合性问题。理解并掌握这些知识点,不仅可以提升爬虫的实用性,还有助于提高对Web技术和网络编程的理解。

Global site tag (gtag.js) - Google Analytics