今日在研究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
分享到:
相关推荐
首先,你需要创建一个`java.net.URL`对象,它代表了你要访问的网络资源的地址。例如: ```java URL url = new URL("http://example.com/api"); ``` 2. **打开连接**: 使用URL对象的`openConnection()`方法...
在Java编程中,`javax.net.ssl.SSLHandshakeException` 是一个常见的错误,通常发生在进行安全套接层(SSL)或传输层安全(TLS)协议握手时出现问题。这个异常通常是由于客户端和服务器之间的证书不匹配、信任锚点...
本篇文章将深入探讨如何使用Java访问.NET Web服务,并在过程中获取和设置Cookie,以便实现更高效、安全的会话管理。首先,让我们理解Web服务的基本概念。 Web服务是一种通过HTTP协议提供功能的方法,使得不同系统间...
在给定的标题和描述中,"proxy.jsp、proxy.ashx、proxy.php、proxy.config"是指四种常见的代理服务实现,分别对应Java、ASP.NET和PHP等不同平台。这些文件通常用于配置和运行Esri的代理服务。 **proxy.jsp** 是一个...
1. **Socket编程**:Java的`java.net.Socket`和`java.net.ServerSocket`类是构建代理服务器的基础。`ServerSocket`用于监听特定端口上的连接请求,而`Socket`则用于建立客户端与代理服务器之间的连接。 2. **HTTP...
在Java中,我们可以使用`java.net.URL`类来创建一个表示URL的对象,然后使用`java.net.URLConnection`打开与该URL的连接。一旦连接建立,我们可以读取输入流并将其写入本地文件以保存图片。以下是一个简单的示例: ...
Java的`java.net.Socket`和`java.net.ServerSocket`类提供了创建和管理TCP连接的基础。在`java_proxy_end`中,可能有一个ServerSocket监听客户端的连接请求,然后创建Socket连接到目标服务器。 6. **多线程处理**: ...
`java.net.Proxy`类是Java 5.0引入的,用于表示网络连接的代理。它包含两种类型:`TYPE_HTTP`和`TYPE_SOCKS`,分别对应HTTP和SOCKS代理。 6. **Socket地址**: 使用`java.net.SocketAddress`表示代理服务器的地址...
本文将详细讲解如何使用Java调用.NET发布的Web Service(ASMX),并解决在此过程中可能出现的SOAPAction报错和“Server not identified”错误。 首先,我们需要了解ASMX。ASMX是.NET Framework早期版本中用于创建...
另外,如果你的应用程序需要处理多个不同的代理设置,或者需要动态切换代理,你可以使用`java.net.Proxy`类和`java.net.ProxySelector`类。`Proxy`类表示一个网络协议代理,而`ProxySelector`类允许你自定义选择代理...
在实现过程中,可能需要使用到Java的`java.net.Socket`类和`java.io`包下的输入/输出流来处理网络数据的读写。同时,为了处理多个并发的客户端连接,通常需要使用多线程技术,每个连接对应一个独立的线程,以避免...
在Java中,可以使用`java.net.Socket`类实现FTP代理,同时,`org.apache.commons.net.ftp.FTPClient`库提供了一个强大的FTP客户端实现,可以方便地处理各种FTP操作。 **Telnet代理** Telnet是一种远程登录协议,...
Akka.NET 是 Akka 的 .NET 开源实现。用于构建强大的并发和分布式应用。Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。示例代码:using System; using ...
标题 "java程序如何穿透带有密码验证的代理" 描述了如何使用Java编程语言来处理一个特定的网络连接问题,即如何让Java程序通过一个需要身份验证的代理服务器进行通信。这个代理服务器通常需要用户名和密码才能访问。...
`java.net.Proxy`类可以用来设置代理类型,而`java.net.ProxySelector`则可以帮助我们根据URL选择合适的代理。 3. **SSL/TLS安全通信**:为了确保数据的安全传输,Java提供了`javax.net.ssl.SSLContext`和`SSL...
1. **发起请求**:客户端通过`java.net.URL`类创建一个URL对象,然后使用`openConnection()`方法建立与服务器的连接。 2. **建立连接**:通过`HttpURLConnection`对象调用`connect()`方法,连接指定的网络资源,获取...
在`Java`环境中,`proxy`配置主要通过`System`属性或者`java.net.Proxy`类来完成。例如,可以在启动应用时添加系统属性: ```bash java -Dhttp.proxyHost=yourproxyserver -Dhttp.proxyPort=8080 ...
这时,可能需要使用`java.net.SocketFactory`或`javax.net.ssl.SSLSocketFactory`来创建自定义的套接字工厂,以便在建立连接时应用代理设置。 文件`LANProxy.java`很可能包含了实现上述概念的具体代码示例。而`Java...
在Java中,我们可以使用`java.net.Proxy`类来指定使用SOCKS代理。 `test`和`socks`这两个文件或目录可能包含了测试代码和相关的Socket通信实现。测试代码通常用于验证Socket通信的功能是否正常,而`socks`可能包含...
- 安装:首先,你需要下载并安装CAS服务器软件,例如Apereo CAS,这通常涉及到配置Java运行环境和数据库连接。 - 配置:配置CAS服务器的主配置文件,包括设置服务器端口、指定数据库连接参数、定义服务验证等。 -...