Java-HTTP连接时如何应用(一)—— System.Property体式格式
添加时间:2013-7-25 点击量:
在创议HTTP恳求(openConnection() 或者 openStream())之前,加上以下2行代码:
1 System.setProperty(proxyHost, PROXY_HOST); // PROXY_HOST:的IP地址
2 System.setProperty(proxyPort, PROXY_PORT); // PROXY_PORT:的端标语
若是你的不须要经由过程验证(输入用户名和暗码),那么就不消持续往下读了。
★ 须要验证
若是你想当然地认为加上以下两行代码就行,那就错了。
1 System.setProperty(proxyUser, PROXY_USERNAME); // 或者 System.setProperty(proxyUsername, PROXY_USERNAME);
2 System.setProperty(proxyPassword, PROXY_PASSWORD);
这时就须要 java.net.Authenticator 类来完成一般的Http验证
在创议恳求之前加人如下代码即可:
1 Authenticator.setDefault(new BasicAuthenticator(PROXY_USERNAME, PROXY_PASSWORD));
当然,还须要创建一个类 BasicAuthenticator,持续自 java.net.Authenticator
1 class BasicAuthenticator extends Authenticator {
2 private String userName;
3 private String password;
4
5 public BasicAuthenticator(String userName, String password) {
6 this.userName = userName;
7 this.password = password;
8 }
9
10 /
11 Called when password authorization is needed. Subclasses should
12 override the default implementation, which returns null.
13
14 @return The PasswordAuthentication collected the
15 user, or null if none is provided.
16 /
17 @Override
18 protected PasswordAuthentication getPasswordAuthentication() {
19 return new PasswordAuthentication(userName, password.toCharArray());
20 }
21 }
具体代码可参考笔者在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
文艺不是炫耀,不是花哨空洞的文字堆砌,不是一张又一张的逆光照片,不是将旅行的意义转化为名牌包和明信片的物质展示;很多时候它甚至完全不美——它嘶吼、扭曲,它会痛苦地抽搐,它常常无言地沉默。——艾小柯《文艺是一种信仰》
在创议HTTP恳求(openConnection() 或者 openStream())之前,加上以下2行代码:
1 System.setProperty(proxyHost, PROXY_HOST); // PROXY_HOST:的IP地址
2 System.setProperty(proxyPort, PROXY_PORT); // PROXY_PORT:的端标语
若是你的不须要经由过程验证(输入用户名和暗码),那么就不消持续往下读了。
★ 须要验证
若是你想当然地认为加上以下两行代码就行,那就错了。
1 System.setProperty(proxyUser, PROXY_USERNAME); // 或者 System.setProperty(proxyUsername, PROXY_USERNAME);
2 System.setProperty(proxyPassword, PROXY_PASSWORD);
这时就须要 java.net.Authenticator 类来完成一般的Http验证
在创议恳求之前加人如下代码即可:
1 Authenticator.setDefault(new BasicAuthenticator(PROXY_USERNAME, PROXY_PASSWORD));
当然,还须要创建一个类 BasicAuthenticator,持续自 java.net.Authenticator
1 class BasicAuthenticator extends Authenticator {
2 private String userName;
3 private String password;
4
5 public BasicAuthenticator(String userName, String password) {
6 this.userName = userName;
7 this.password = password;
8 }
9
10 /
11 Called when password authorization is needed. Subclasses should
12 override the default implementation, which returns null.
13
14 @return The PasswordAuthentication collected the
15 user, or null if none is provided.
16 /
17 @Override
18 protected PasswordAuthentication getPasswordAuthentication() {
19 return new PasswordAuthentication(userName, password.toCharArray());
20 }
21 }
具体代码可参考笔者在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
文艺不是炫耀,不是花哨空洞的文字堆砌,不是一张又一张的逆光照片,不是将旅行的意义转化为名牌包和明信片的物质展示;很多时候它甚至完全不美——它嘶吼、扭曲,它会痛苦地抽搐,它常常无言地沉默。——艾小柯《文艺是一种信仰》