Java-HTTP连接时如何使用代理(一)—— System.Property方式
在发起HTTP请求(openConnection() 或者 openStream())之前,加上以下2行代码:
System.setProperty("proxyHost", PROXY_HOST); // PROXY_HOST:代理的IP地址
System.setProperty("proxyPort", PROXY_PORT); // PROXY_PORT:代理的端口号
如果你的代理不需要通过验证(输入用户名和密码),那么就不用继续往下读了。
★ 代理需要验证
如果你想当然地认为加上以下两行代码就行,那就错了。
System.setProperty("proxyUser", PROXY_USERNAME); // 或者 System.setProperty("proxyUsername", PROXY_USERNAME);
System.setProperty("proxyPassword", PROXY_PASSWORD);
这时就需要 java.net.Authenticator 类来完成一般的Http验证
在发起请求之前加人如下代码即可:
Authenticator.setDefault(new BasicAuthenticator(PROXY_USERNAME, PROXY_PASSWORD));
当然,还需要创建一个类 BasicAuthenticator,继承自 java.net.Authenticator
class BasicAuthenticator extends Authenticator {
private String userName;
private String password; public BasicAuthenticator(String userName, String password) {
this.userName = userName;
this.password = password;
} /**
* Called when password authorization is needed. Subclasses should
* override the default implementation, which returns null.
*
* @return The PasswordAuthentication collected from the
* user, or null if none is provided.
*/
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName, password.toCharArray());
}
}
详细代码可参考笔者在GitHub上的代码,包括实现类和测试类:
实现类:
https://github.com/YoungZHU/CollectionCode4Java/blob/master/src/org/young/util/ProxyedURL.java
测试类:
https://github.com/YoungZHU/CollectionCode4Java/blob/master/test/org/young/util/ProxyedURLTest.java
Java-HTTP连接时如何使用代理(一)—— System.Property方式的更多相关文章
- Java-HTTP连接时如何使用代理(二)—— Proxy类方式
阅读这篇文章之前,请先阅读 Java-HTTP连接时如何使用代理(一)——System.Property方式 除了使用 System.setProperty() 的方式之外,还可使用 Proxy 的方 ...
- java+selenium3.0 运行时出的问题(system property)!
按照之前的文章讲解,都已经搭建好了,可是在刚开始运行就报错了,代码和报错如下: WebDriver driver = new ChromeDriver(); driver.get("http ...
- JAVA Socket 连接时长
其实关于这个问题可能用到的人不会很多,不过我在这里还是说说. 正常很多人写socket通信时,都会直接通过new socket(IP,PORT)直接去链接服务器.其实这种做法也没有错误,但是若当服务器 ...
- java mysql连接时出现的问题
当出现Caused by: java.sql.SQLException: Unknown system variable ‘tx_isolation’ 一般是mysql-connector-java的 ...
- Java项目启动时执行指定方法的几种方式
很多时候我们都会碰到需要在程序启动时去执行的方法,比如说去读取某个配置,预加载缓存,定时任务的初始化等.这里给出几种解决方案供大家参考. 1. 使用@PostConstruct注解 这个注解呢,可以在 ...
- java Web 启动时自动执行代码的几种方式
Web容器启动后执行代码的几种方式,其执行顺序为:4===>5===>1===>2===>3,即指定init-method的Bean开始执行,接着实现spring的Bean后置 ...
- java遇到 Check $M2_HOME 问题 解决-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.
步骤: 1.添加M2_HOME的环境变量 2.Preference->Java->Installed JREs->Edit 选择一个jdk 3.添加 -Dmaven.multiMod ...
- Eclipse运行Maven命令时出现:-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.问题解决
错误: -Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment varia ...
- Java开源连接池c3p0的基本用法
前言:其实c3p0只是一个实现了javax.sql 接口 DataSource的一个工具集,使用c3p0可以帮我们管理宝贵的Connection资源,无须我们去创建连接(免去每次配置数据库驱动,url ...
随机推荐
- Angularjs 如何在 post 请求时去掉因 ng-repeat 产生的 $$hashkey?
序列化的时候用 angular.toJson 和 angular.fromJson ,不要用 Json.parse 和 JSON.stringify 就可以了.
- hdu 3879 Base Station 最大权闭合图
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3879 A famous mobile communication company is plannin ...
- AC自动机学习
今天包括这一周开始学习AC自动机了,有点晚,但我感觉努努力还来得及.4月份还得认认真真攻图论,加油! 为2个月后的邀请赛及省赛.东北赛做准备. 推荐AC自动机学习地址:http://www.cppbl ...
- Leetcode#133 Clone Graph
原题地址 方法I,DFS 一边遍历一边复制 借助辅助map保存已经复制好了的节点 对于原图中每个节点,如果已经复制过了,直接返回新节点的地址,如果没复制过,则复制并加入map中,接着依次递归复制其兄弟 ...
- 户外物理渗透:终端机,客户端的web测试思路
现在的客户端界面越做越好看了,很多用到了web技术,轻便.界面炫.更新快,但是这样web的缺点也就出来了,就是不稳定,容易受用户等因素影响. 因为很多客户端web是内嵌的,内部通信,所以很多对安全的考 ...
- 十个实用但IE不支持的CSS属性
对IE浏览器尤其是IE6的抱怨基本已进入麻痹状态,偶尔甚至产生非常消极的想法:这个世界只有一个浏览器就好了,哪怕这唯一的浏览器就是IE6.当然,这样的想法是非常病态的,马上打消.本文里面,介绍了10个 ...
- 关于linux系统如何实现fork的研究(二)
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 引言 前一篇关于linux系统如何实现fork的研究(一)通过代码已经说明了从用户态怎么通过软中断实现调用系统调 ...
- 2016年度 JavaScript 展望(下)
[编者按]本文作者为资深 Web 开发者 TJ VanToll, TJ 专注于移动端 Web 应用及其性能,是<jQuery UI 实践> 一书的作者. 本文系 OneAPM 工程师编译呈 ...
- 超快的 FastText
Word2Vec 作者.脸书科学家 Mikolov 文本分类新作 fastText:方法简单,号称并不需要深度学习那样几小时或者几天的训练时间,在普通 CPU 上最快几十秒就可以训练模型,得到不错的结 ...
- 各大公司广泛使用的在线学习算法FTRL详解 - EE_NovRain
转载请注明本文链接:http://www.cnblogs.com/EE-NovRain/p/3810737.html 现在做在线学习和CTR常常会用到逻辑回归( Logistic Regression ...