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

http代理

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

 

分享到:
评论

相关推荐

    C#实现HTTP代理

    在IT行业中,HTTP代理是一种网络通信机制,它允许客户端(如Web浏览器)通过另一台服务器作为中介来访问互联网上的资源。这种技术常用于提高匿名性、优化网络性能或绕过特定的网络限制。本篇文章将深入探讨如何使用...

    HTTP代理穿透方法

    ### HTTP代理穿透方法详解 #### 一、引言 HTTP代理穿透是指客户端通过HTTP代理服务器访问互联网资源的技术手段。在很多场景下,由于网络安全策略或技术限制,客户端不能直接访问某些资源,这时就需要借助HTTP代理...

    基于C++设计与实现HTTP代理服务器【100011743】

    设计并实现一个基本 HTTP 代理服务器。要求在指定端口(例如 8080)接收来自客户的 HTTP 请求并且根据其中的 URL 地址访问该地址所指向的 HTTP 服务器(原服务器),接收 HTTP 服务器的响应报文,并将响应报文转发给...

    Visual C#实现HTTP代理服务程序

    【Visual C#实现HTTP代理服务程序】 HTTP代理服务程序是一种在网络中起到中转作用的软件,允许客户端(如浏览器)通过代理服务器访问互联网上的资源。HTTP代理服务是针对HTTP协议设计的,它工作在TCP/IP参考模型的...

    商道HTTP代理IP验证工具

    "商道HTTP代理IP验证工具"就是针对这一需求设计的一款实用软件,它专为批量验证HTTP代理IP的可用性而生。下面,我们将详细探讨这款工具的功能、工作原理以及其在实际使用中的价值。 首先,我们要理解什么是代理IP。...

    HTTP 代理服务器在 Windows下的实现

    HTTP代理服务器在Windows环境下主要起到中介的作用,允许客户端(如Web浏览器)通过它与外部互联网进行通信。这种设置有助于提高网络性能、实现访问控制、监控网络活动以及在多用户环境中节省公网IP地址。本文将详细...

    HTTP代理IP检测高达

    HTTP代理IP检测高达,哇咔咔。安全无毒。

    Java编写的HTTP代理

    Java编写的HTTP代理是一种软件应用,它允许用户通过Java程序作为中介来访问互联网,从而实现对HTTP请求的转发。这种代理服务器通常用于多种用途,包括网络匿名性、内容过滤、性能优化以及网络测试等。在Java中实现...

    完全自助开发的HTTP代理程序

    标题 "完全自助开发的HTTP代理程序" 描述了一个项目,该项目是作者独立完成的,旨在理解和实现HTTP代理服务器的工作原理。这个程序能够处理HTTP协议的数据解包与打包,包括对chunked编码的处理,这对于理解HTTP协议...

    C#版的HTTP代理源码(完整版) (支持MSN和QQ代理上网)

    本文将深入探讨C#实现的HTTP代理源码,特别关注其支持MSN和QQ代理上网的功能。 首先,我们需要理解HTTP代理的基本概念。HTTP代理是一种服务器,它充当客户端与目标Web服务器之间的桥梁。客户端通过HTTP代理发送请求...

    HTTP代理服务器java

    HTTP代理服务器java 简单网站过滤

    Http 代理服务器 (源码)

    HTTP代理服务器是一种网络服务,它允许客户端(如Web浏览器)通过该服务器与目标服务器进行通信。在本场景中,我们有一个名为"Http 代理服务器 (源码)"的项目,这是一个控制台应用程序,专为VC6(Visual C++ 6.0)...

    delphi编写的简单http代理源代码

    在这个主题中,我们关注的是使用Delphi编写的一个简单的HTTP代理服务器的源代码。HTTP代理是网络通信中的一个重要概念,它作为客户端和互联网之间的中介,允许用户通过代理服务器访问网页和其他在线资源。 在Delphi...

    简单HTTP代理服务器-源码c++

    本项目提供的"简单HTTP代理服务器-源码c++"为开发者提供了一个基础的平台,用于理解和实现HTTP代理服务。源码使用C/C++编写,语言简洁且易于理解,适合初学者学习和进一步开发。 HTTP代理服务器是一个介于客户端和...

    简单HTTP代理服务器

    【简单HTTP代理服务器】是一种网络通信工具,它允许用户通过该服务器作为中介,与互联网上的其他服务器进行交互。这样的设计可以用于多种目的,包括隐私保护、网络访问控制、负载均衡等。在这里,我们讨论的是一个自...

    vc++http代理服务器

    本项目"vc++http代理服务器"是一个使用VC++6.0和MFC开发的HTTP代理服务器软件。对于VC++和MFC编程爱好者来说,这是一个很好的学习资源,可以深入理解网络编程、多线程处理、套接字编程以及代理服务器的工作原理。 ...

    SOCK-HTTP代理协议解析

    ### SOCK-HTTP代理协议解析 #### 一、引言 随着互联网技术的不断发展与网络环境的日益复杂化,为了确保网络安全、控制访问权限以及优化网络性能,越来越多的企业和个人选择使用代理服务。代理服务通过中间服务器...

    基于Python实现的HTTP代理服务器设计.zip

    (1)设计并实现一个基本HTTP代理服务器。要求在指定端口(例如8080)接收来自客户的HTTP请求并且根据其中的URL地址访问该地址所指向的HTTP服务器(原服务器),接收HTTP服务器的响应报文,并将响应报文转发给对应的...

    Java的HTTP代理服务器 Smart Cache

    "Java的HTTP代理服务器 Smart Cache" 是一个基于Java开发的网络工具,主要用于处理HTTP网络请求,同时具备缓存功能,可以提升数据访问速度并减轻服务器压力。它利用了Java的多线程和网络编程能力,实现了对HTTP协议...

Global site tag (gtag.js) - Google Analytics