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

HttpURLConnection使用代理服务器

阅读更多

目前网络上最流行的协议就是HTTP协议。HTTP协议有许多优点,例如它能够穿越防火墙。同时HTTP也是很多其他协议的基础,例如SOAP协议就是建立在HTTP协议之上的。 Java通过两种APIHTTP提供支持,一种是servlet API,它覆盖了服务器端的编程问题;另一种是java.net包,它通过HttpURLConnection类在客户端提供了对HTTP协议的支持。

Java中可以使用HttpURLConnection来请求WEB资源。

HttpURLConnection对象不能直接构造,需要通过URL.openConnection()来获得HttpURLConnection对象,示例代码如下:

String szUrl = "http://www.ee2ee.com/";

URL url = new URL(szUrl);

HttpURLConnection urlCon = (HttpURLConnection)url.openConnection();

//设置代理服务器

Properties systemProperties = System.getProperties();

systemProperties.setProperty("http.proxyHost",proxy);

systemProperties.setProperty("http.proxyPort",port);

urlCon .setConnectTimeout();//设置连接主机超时(单位:毫秒)

urlCon .setReadTimeout();//设置从主机读取数据超时(单位:毫秒)

urlCon.setDoOutput(true);

urlCon.setRequestMethod("POST");

String username="username=02000001";

urlCon.getOutputStream().write(username.getBytes()); 

urlCon.getOutputStream().flush();

urlCon.getOutputStream().close();

 

HttpURLConnection通过验证类支持代理服务器验证。首先需要实现一个验证者:

public class SimpleAuthenticatorextends Authenticator{

private String username,password;

public SimpleAuthenticator(String username,String password){

this.username = username;

this.password = password;

}

protected PasswordAuthentication getPasswordAuthentication(){

return new PasswordAuthentication(username,password.toCharArray());

}

}

然后,通过Authenticator.setDefault()方法注册验证者:

Authenticator.setDefault(new SimpleAuthenticator(username,password));
Properties systemProperties = System.getProperties();
systemProperties.setProperty("http.proxyHost",proxy);
systemProperties.setProperty("http.proxyPort",port);
HttpURLConnection connection = (HttpURLConnection)server.openConnection();
connection.connect();

分享到:
评论

相关推荐

    JavaProx多项目多工程代理HttpUrlConnection

    这个场景通常涉及到多个独立的开发项目或模块,它们可能需要通过同一代理服务器访问互联网资源,或者根据不同的环境配置不同的代理设置。 `HttpUrlConnection`是Java标准库中的一个类,它提供了HTTP协议的基本操作...

    使用Proxy创建代理服务器

    注意,可能需要设置连接的代理属性,如`http.proxyHost`和`http.proxyPort`,以指示HttpURLConnection使用我们创建的代理服务器。 4. **转发请求**: 将从客户端接收到的HTTP请求数据写入HttpURLConnection的...

    java LAN使用代理服务器

    在Java编程环境中,当需要通过局域网(LAN)进行网络通信时,有时会遇到需要使用代理服务器的情况。代理服务器可以提供多种功能,包括提高访问速度、缓存、过滤网络内容以及匿名上网等。本文将深入探讨如何在Java中...

    本示例使用HttpUrlConnection实现上传文件

    在Android开发中,有时我们需要将本地的文件...通过理解以上步骤和注意事项,开发者可以有效地利用HttpURLConnection在Android应用中实现代理文件上传功能。同时,了解服务器端如何接收和处理这些文件也是至关重要的。

    HttpURLConnection使用总结示例源码

    HttpURLConnection是Java标准库中的一个类,它是HTTP协议的基础实现,用于在客户端和服务器之间建立网络连接并进行数据传输。这个类是Java程序员在进行网络编程时常用的工具,尤其是在发送HTTP请求和处理响应时。本...

    简单HTTP代理服务器

    由于信息有限,我们无法进一步了解这个"0.05"文件的具体内容,但可以推测它可能是项目的一部分,可能包含了部分或全部的代理服务器实现代码。 总结来说,构建一个简单的HTTP代理服务器涉及HTTP协议的理解、网络编程...

    Java代理服务器程序

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

    http代理服务器的实现(程序).rar

    使用多线程处理每个连接,可以确保代理服务器能同时处理多个请求,提高系统性能。Java的HttpURLConnection或HttpClient库则可以帮助解析和构建HTTP请求及响应。 毕业设计或论文中,涉及HTTP代理服务器的实现通常会...

    Httpurlconnection

    在这个主题中,我们将深入探讨HttpURLConnection的基本操作及其在实际应用中的使用。 首先,了解HttpURLConnection的基本结构是非常重要的。它继承自URLConnection类,提供了对HTTP协议的支持。通过URL对象的open...

    http代理服务器的实现(程序).zip

    这种代理服务器可以用于多种目的,包括提高性能(通过缓存重复请求),提供匿名浏览,以及在企业环境中控制和监控网络流量。 在实现HTTP代理服务器时,主要涉及以下几个关键技术点: 1. **HTTP协议理解**:HTTP...

    基于Java多线程的HTTP代理服务器的研究与实现.pdf

    Java的HttpURLConnection和HttpClient类可以方便地处理HTTP请求和响应,但可能需要自定义逻辑来适应代理服务器的特定需求,比如转发请求、修改请求头或响应头、处理HTTPS代理等。 接下来,代理服务器还需要考虑缓存...

    android 联网请求的两种方式HttpURLConnection和HttpClient

    使用HttpURLConnection进行联网请求的基本步骤如下: 1. **建立连接**:通过URL对象创建HttpURLConnection实例。 2. **设置请求方法**:调用`setRequestMethod()`,如`setRequestMethod("POST")`或`...

    http.rar httpurlconnection

    然而,POST请求可能不被某些缓存或代理服务器支持,且不保证请求顺序。 HTTP URLConnection实现GET和POST的方式略有不同: - 对于GET请求,可以通过`setRequestProperty("Content-Type", "application/x-...

    android使用Java原生httpUrlConnection进行get请求

    在这个场景下,我们将详细探讨如何使用Java原生的HttpURLConnection实现一个GET请求。 首先,我们需要了解GET请求的基本原理。GET请求是最常见的HTTP方法,用于从服务器获取资源。它将参数附加到URL中,以便服务器...

    Java中使用IE Proxy代理的方法

    在实际开发中,你可能还需要处理一些特殊情况,例如代理服务器的类型(如HTTP、SOCKS),以及代理服务器是否需要认证。对于认证,通常需要处理NTLM或Kerberos等复杂的身份验证协议,这可能需要使用额外的库,如jcifs...

    Android HTTP 通信demo源码附带Tomcat 服务器源码

    这里主要以`HttpURLConnection`为例,因为它自Android API 26开始被推荐使用,具有更好的性能和更低的内存占用。 1. **使用HttpURLConnection进行HTTP请求**: - 首先,创建一个URL对象,指向你要访问的服务器地址...

    全自动提取IP代理.zip

    7. **安全注意事项**:使用代理时要注意代理服务器的合法性和安全性,避免使用可能带来风险的代理,如涉及侵犯他人隐私或非法活动的代理。 8. **性能优化**:对于大量请求,可以使用IP池策略,动态分配和轮换IP,...

    自定义真实代理

    1. **代理原理**:代理服务器作为客户端与目标服务器之间的中介,接收客户端的请求,然后转发给目标服务器,再将服务器的响应返回给客户端。自定义真实代理在此基础上,可以增加更多定制化的功能,如过滤请求、缓存...

Global site tag (gtag.js) - Google Analytics