让URLConnection使用代理服务器

简介: JDK的文档对使用代理服务器的介绍很少,据说JDK5.0好象增加了这方面的内容。其实要使用代理服务器很简单,只要在URL.openConnection()之前增加下面的代码即可: Properties prop = System.getProperties(); prop.put("http.proxyHost", getProxyHost()); prop.put("http.proxyPort", "" + getProxyPort()); 也就是给系统变量里增加了两个项,在执行程序时加上参数“-Dhttp.proxyHost=xxx”的效果也是一样的。

JDK的文档对使用代理服务器的介绍很少,据说JDK5.0好象增加了这方面的内容。其实要使用代理服务器很简单,只要在URL.openConnection()之前增加下面的代码即可:

Properties prop = System.getProperties(); 
prop.put("http.proxyHost", getProxyHost()); 
prop.put("http.proxyPort", "" + getProxyPort());

也就是给系统变量里增加了两个项,在执行程序时加上参数“-Dhttp.proxyHost=xxx”的效果也是一样的。

若代理服务器需要验证,则还要使用以下代码:

String authentication = getProxyUser() + ":" + getProxyPassword(); 
String encodedLogin = new sun.misc.BASE64Encoder().encodeBuffer(authentication.getBytes()); 
connection.setRequestProperty("Proxy-Authorization", "Basic " + encodedLogin);

也就是在Http头上增加了Proxy-Authorization信息。

更多属性:http://java.sun.com/j2se/1.4.2/docs/guide/net/properties.html

本文转自博客园八进制的博客,原文链接:让URLConnection使用代理服务器,如需转载请自行联系原博主。

相关文章
HttpURLConnection重定向,获取及设置cookie
HttpURLConnection获取重定向地址和cookie的代码如下: public void first() throws Exception{ Map paramsHashMap = new HashMap(); paramsHashMap.
2311 0
|
3月前
|
JSON 安全 算法
JAVA网络编程中的URL与URLConnection:那些你不知道的秘密!
在Java网络编程中,URL与URLConnection是连接网络资源的两大基石。本文通过问题解答形式,揭示了它们的深层秘密,包括特殊字符处理、请求头设置、响应体读取、支持的HTTP方法及性能优化技巧,帮助你掌握高效、安全的网络编程技能。
119 9
|
9月前
|
网络安全 C#
C# HttpWebRequest 获取 HTTPS 网页内容
C# HttpWebRequest 获取 HTTPS 网页内容
956 0
|
9月前
|
网络安全
socks5代理连接成功无法访问http协议的站点
无法通过SOCKS5代理访问HTTP网站可能由多个原因引起,如代理服务器不支持HTTP、配置错误、防火墙阻拦、连接问题、身份验证失败、浏览器设置不当或服务器被封锁。检查并解决这些因素,若问题持续,需深入排查或联系服务提供商。
|
9月前
|
数据采集 缓存 监控
Socks5 与 HTTP 代理在网络安全中的应用
Socks5 与 HTTP 代理在网络安全中的应用
81 0
|
JSON JavaScript 前端开发
如何处理跨域请求:JSONP、CORS 和代理服务器
处理跨域请求是前端开发中的常见挑战,因为浏览器的同源策略限制了在不同域名、协议或端口之间进行直接通信。为了解决跨域请求的问题,可以使用以下三种常见的方法:JSONP、CORS和代理服务器。
520 0
|
存储 JSON Java
HttpURLConnection发送中文乱码问题解决
HttpURLConnection发送中文乱码问题解决
325 0
|
数据安全/隐私保护 数据格式 XML
HttpClient4.X的代理添加实现
HttpClient4.X的代理添加实现http://www.bieryun.com/1630.html [java] 查看纯文本 package  org.yla.test; import  java.
1211 0