`
superfofo
  • 浏览: 128764 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java.net.Proxy使用Proxy创建连接

阅读更多
今日在研究app的时候发现google app engine,nnd不支持这个Proxy。碰巧让我发现了连接通过代理来实现的方式java.net.Proxy,发现对代理这个东西比较虚,因此搜索了一把,希望对遇到的童鞋也有所帮助。

使用代理服务器

从JDK1.5开始,Java在java.net包下提供了Proxy和ProxySelector两个类,其中Proxy代表一个代理服务器,可以在打开URLConnection连接时指定所用的Proxy实例,也可以在创建Socket连接时指定Proxy实例。而ProxySelector代表一个代理选择器,它提供了对代理服务器更加灵活的控制,它可以对HTTP、HTTPS、FTP、SOCKS等分别设置,而且还可以设置不需要通过代理服务器的主机和地址。通过使用ProxySelector可以达到像在Internet Explorer、FireFox等软件中设置代理服务器类似的效果。

代理服务器的功能就是代理网络用户去取得网络信息。我们使用网络浏览器直接连接其他Internet站点取得网络信息时,通常需要发送Request请求来等到响应。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取得网页数据而是向代理服务器发出请求,Request请求会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并送回给网络浏览器。而且,大部分代理服务器都具有缓冲的功能,就好像一个大的Cache,它有很大的存储空间,它不断将新取得的数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。归纳起来代理服务器主要提供如下两个功能:

突破自身IP限制,对外隐藏自身IP地址。突破IP限制包括访问国外受限站点,访问国内特定单位、团体的内部资源。

提高访问速度,代理服务器提供的缓冲功能可以避免每个用户都直接访问远程主机,从而提高客户端访问速度。

关键代码实现:
url = new URL(urlStr);//创建一个代理服务器对象
proxy = new Proxy(Proxy.Type.HTTP,new InetSocketAddress(proxyAddress , proxyPort));//使用指定的代理服务器打开连接
conn = url.openConnection(proxy);//设置超时时长
conn.setConnectTimeout(5000);


http://book.51cto.com/art/200809/89229.htm
分享到:
评论

相关推荐

    Akka​ 的 .NET 开源实现 Akka.NET.zip

    Akka.NET 是 Akka 的 .NET 开源实现。用于构建强大的并发和分布式应用。Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。示例代码:using System; using ...

    charles-proxy 抓包工具 v4.2 Win + Mac + Linux全平台破解文件

    下载正版原版程序: https://www.charlesproxy.com/assets/release/4.2/charles-proxy-4.2-win64.msi https://www.charlesproxy.com/assets/release/4.2/charles-proxy-4.2-win32.msi ...

    COS——R.log

    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang...

    http远程接口调用-httpClient+跳过SSL证书校验

    http远程接口调用-httpClient+跳过SSL证书校验. 里面分别有3个httpClient的工具类代码。 还有一个专门为了跳过SSL证书校验的工具类。

    AOP.in..NET

    AOP tools for .NET have now reached the level of practical maturity Java developers have relied on for many years, and you'll explore the leading options, PostSharp, and Castle DynamicProxy. ...

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

    import java.net.*; import java.io.*; public class MyProxyServer { public static void main(String args[]) { try { ServerSocket ss=new ServerSocket(8080); System.out.println("proxy server OK");...

    利用JAVA代理Proxy机制实现spring对ibaits的MapperScannerConfigurer功能

    利用JAVA代理Proxy机制实现spring对ibaits的MapperScannerConfigurer功能 详细:http://blog.csdn.net/wq105032007067/article/details/8812598

    asp.net知识库

    在ASP.NET中使用WINDOWS验证方式连接SQL SERVER数据库 改进ADO.Net数据库访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新数据库的类+总结 [ADO.NET]由数据库触发器引发的问题 为ASP.NET封装的SQL数据库...

    Spring.net框架

    (4)使用Spring.net实现Ioc; (5)Romoting; (6)利用Ioc在不动一行代码的情 况下实现Remoting。为了更好的理解文中的内容,最好顺序阅读。 作为一个应用系统,代码复用至关重要。如果在你的设计中,类与类存在...

    Java中使用IE Proxy代理的方法

    博客地址: https://blog.csdn.net/xcr530551426/article/details/95483176

    Java 基础核心总结 +经典算法大全.rar

    Java.IO Java.lang Java.math Java.net Java 基础核心总结 V2.0 IO 传统的 BIO BIO NIO 和 AIO 的区别什么是流 流的分类 节点流和处理流 Java IO 的核心类 File Java IO 流对象 字节流对象InputStream ...

    java获取IE代理源码,包含dll

    引入java包后,可以直接调用,如:Registry.... System.out.println("使用IE代理服务器." + proxyServer); } } catch (Exception e) { System.out.println("ERROR:操作Windows注册表失败."); } } }

    Ext Js权威指南(.zip.001

    7.2.5 使用ajax处理数据的代理:ext.data.proxy.ajax与ext.data.proxy.rest / 308 7.2.6 跨域处理数据的代理:ext.data.proxy.jsonp / 312 7.2.7 为ext.direct服务的代理:ext.data.proxy.direct / 312 7.2.8 ...

    JAVA上百实例源码以及开源项目源代码

    1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...

    JAVA上百实例源码以及开源项目

    1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...

    HTTP_Debugger_Pro_V9.10_Crack.zip

    Doesn't change the browser's configuration for the proxy. Can display proxy-connected traffic. Edit and resubmit HTTP sessions. Edit and resubmit tweaked HTTP sessions back to your server, test/...

    .NET API接口和返回的版本

    System.out.println(clientProxy.helloWorld()); } } 当我们把这个例子编译之后,在命令行中输入以下命令就可以看到执行结果了: java -classpath .;phprpc_client.jar HelloWorld 这个 Java 的客户端看上去...

    java 实现AOP

    BusinessInterface proxy = (BusinessInterface) Proxy.newProxyInstance(  businessImp.getClass().getClassLoader(),  businessImp.getClass().getInterfaces(),  handler); proxy.processBusiness(); ...

    Selenium Design Patterns and Best Practices(PACKT,2014)

    Control Selenium WebDriver within any major programing language such as Java, Ruby, Python, and .NET Learn how to implement a simple test script or a complex Page Objects framework Set up each test to...

Global site tag (gtag.js) - Google Analytics