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));
}
}
- 浏览: 417665 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (267)
- 序列号 (1)
- jquery (14)
- Eclipse插件 (3)
- Flex (2)
- Rose (1)
- Myeclipse (3)
- maven (4)
- SpringSecurity (2)
- sproutcore (1)
- Http (2)
- svn (4)
- gwt (3)
- jetty (1)
- freebsd (1)
- java (29)
- Oracle (21)
- windows (1)
- Mybatis3.0 (3)
- Struts2 (6)
- easyui (1)
- JPA (1)
- UML (1)
- dom4j (1)
- design pattern (2)
- JavaScript (8)
- FreeMarker (2)
- SQLServer (1)
- memcached (3)
- urlrewrite (1)
- MonggoDB (1)
- Solr (1)
- Lucene (1)
- SQL (2)
- JODConverter (1)
- xml (2)
- pdf2swf (1)
- flexpaper (1)
- android (2)
- jsp (5)
- mobile (1)
- weblogic (3)
- Tomcat (8)
- xss (1)
- db2 (2)
- webservice (1)
- spring (2)
- Gradle (1)
- linux (4)
- ldap (1)
- 软件工程 (1)
- 开发模型 (1)
- linux系统硬件配置查看方法 (1)
- cas (3)
- mysql (1)
- HAProxy (0)
- html (1)
- Web前端 (1)
最新评论
-
super_zou:
...
世界主要国家地区下拉菜单三级联动1 -
ldl_xz:
http://www.9958.pw/post/wenku 曾 ...
利用pdf2swf将PDF转换成SWF -
superlxw1234:
请教一下楼主,你们是如何解决使用MAgent时候,一台主Mem ...
memcached集群-magent -
头子:
中间那段关于“空隙”的解决方式很赞
HTML固定表头Table -
qiankun:
比较实用,好好学习了一下
Mybatis 在dao中获取分页的总记录数
发表评论
-
JAVA8 最新电子书集合
2017-12-18 11:41 494JAVA8 最新电子书集合 Advanced_topic ... -
前端知识体系
2017-12-05 15:23 364转自:http://www.cnblogs.com/sb1 ... -
启用了不安全的HTTP方法
2017-02-09 11:39 1280启用了不安全的HTTP方 ... -
java 运行 jar classpath配置
2017-01-09 15:16 397按照developrworks上说的: http:/ ... -
2016最流行的Java EE服务器
2016-11-30 13:45 373如今是我们发布有关Java领域统计资料的第四个年头。每年春天 ... -
HttpServletRequest 方法详解
2016-11-30 13:40 763request.setCharacterEncoding ... -
HTTP响应头信息和请求头信息详解
2016-11-30 11:16 427web性能测试中有一个web ... -
使用Java操作LDAP案例
2016-11-28 15:40 23081 案例描述 公司平台使用LDAP来储存企业或用户的信息,在 ... -
解决不同浏览器下载文件名中文不能正常显示的问题
2016-07-21 14:43 611if (request.getHeader(" ... -
CXF、Restlet、RESTEasy、Jersey对比
2016-05-09 09:31 1607CXF、Restlet、RESTEasy、Jersey对比 ... -
java垃圾收集解析
2016-03-15 16:28 377名称 查找对象 垃圾 ... -
java获取客户端的IP地址
2016-03-14 13:46 1002在JSP里,获取客户端的IP地址的方法是:request. ... -
Tomcat性能调优方案
2015-07-10 13:02 910Tomcat性能调优方案 一 ... -
JVM内存配置说明
2015-07-03 13:28 614-Xms512m -Xmx1024m 1. -Xmx ... -
iframe 跨域
2014-08-12 10:50 486业务需求要将a系统嵌 ... -
http代理
2014-05-09 09:53 1037import java.io.IOException; ... -
java二维码生成与解析代码实现
2014-01-01 22:16 9125TwoDimensionCode类:二维码操作核心类 pa ... -
二维码、QR码、J4L-QRCode、java
2014-01-01 22:08 3429开源码 Java 解码器(编码解码)下载:http://so ... -
JSP 页面缓存以及清除缓存
2013-12-14 10:30 900JSP 页面缓存以及清除 ... -
关于Java性能的9个谬论
2013-08-11 21:05 524Java的性能有某种黑魔法之称。部分原因在于Java平台非常 ...
相关推荐
Java网络代理源代码是用于创建一个代理服务器的程序,它可以帮助开发者在调试和监控网络数据时获取必要的信息。这个源代码特别适用于理解如何利用Java的Socket编程实现网络代理功能。以下将详细介绍Java Socket和...
一个简单的网络爬虫,获取代理信息以及验证代理是否可以! GetAgentTask.java main 方法测试
java开发,使用netty做网络层,用作代理服务器。实现网络代理工能。
通过Java网络爬虫爬取指定代理ip网上的ip,利用了jsoup、httpclient技术实现
这个"java操作IE代理"的主题涉及到如何在Java程序中控制IE的网络代理设置,这通常需要利用特定的库和方法来实现。下面将详细介绍这个知识点。 首先,"registry.jar"可能是一个包含了对Windows注册表操作功能的Java...
本主题将深入探讨如何使用Java语言来编写这样的代理服务器。以下是对这个主题的详细解析: 首先,理解HTTP代理服务器的基本原理是必要的。HTTP代理服务器作为客户端与目标服务器之间的中介,它接收客户端的HTTP请求...
Java代理服务器程序是一种用于转发网络请求的应用,它在客户端与目标服务器之间起到中介的作用。这样的设计使得用户可以通过代理服务器访问互联网,从而实现多种功能,如匿名浏览、负载均衡、缓存优化、网络监控等。...
Java静态代理模式是一种设计模式,它允许我们为一个对象提供一个代理,以便增强或扩展其功能,同时不改变原有对象的代码。在Java中,静态代理是通过在代理类中显式实现目标接口来实现的。下面将详细介绍静态代理模式...
JAVA 通过proxy代理方式访问internet资源,
- **RPC框架**:在网络通信中,动态代理可以用于拦截方法调用,进行序列化、网络传输等操作。 - **缓存策略**:在数据访问层,可以使用动态代理实现缓存策略,如方法调用前检查缓存,避免重复计算。 - **事务管理...
Java 实现的代理服务器是一种基于Java编程语言的网络服务,它的主要作用是充当客户端与目标服务器之间的中介。这种代理服务器可以用于多种用途,包括数据抓取、匿名浏览、网络安全管理和性能优化等。在这个实例中,...
在Java编程中,获取浏览器的代理设置是一项重要的任务,特别是在开发网络应用或者需要模拟用户网络环境的场景下。本文将详细讲解如何利用Java来获取浏览器的代理设置,并结合提供的文件`registry.jar`和`ICE_...
java在网络编程时设置代理服务器,并设置代理账号和密码。
Java 实现的代理程序是一种网络通信工具,它允许客户端通过代理服务器访问其他网络资源,以提高安全性、匿名性或优化网络性能。...开发者可以通过阅读和学习这些源码,进一步理解Java网络编程和代理服务器的工作原理。
`Proxy`类是Java中表示网络代理的抽象类,它可以是HTTP、SOCKS或任何其他类型的代理。你可以通过以下方式创建一个`Proxy`对象: ```java Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(...
它还涵盖了Java对网络代理、Web cookie和URL缓存的支持。 《Java网络编程》不仅仅是对API的解释:它还展示了如何使用API。本书有很多示例,包含了几千行可以实际工作的代码(所有代码都可以在线获得),实现了功能...
Java Socket 编写的上网代理是一种基于TCP/IP协议的网络通信方式,它允许应用程序通过Socket连接到其他网络服务,实现数据的传输。在这个特定的项目中,开发者使用Java语言实现了代理服务器的功能,允许用户通过该...
- **Java网络编程书籍**:如《Java Network Programming》等,深入学习Java网络编程基础知识。 - **开源项目参考**:如 squid 或者 http-proxy-servlet 等,研究成熟的代理服务器实现。 通过这个项目,开发者可以...
总的来说,Java编写的HTTP代理是一个涉及网络编程、HTTP协议理解、多线程和可能的加密技术的复杂项目。通过这样的代理,用户能够实现对网络访问的控制和优化,同时也为开发者提供了一个学习和实践网络编程的好机会。
总的来说,Java爬虫结合Jsoup实现动态IP代理是一个涉及网络通信、HTML解析、数据处理和代理机制等多个方面的综合性问题。理解并掌握这些知识点,不仅可以提升爬虫的实用性,还有助于提高对Web技术和网络编程的理解。