1、一个简短的引论

代理server(Proxy
Server)是一种重要的server安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用。

代理server大多被用来连接INTERNET(国际互联网)和INTRANET(局域网)。主要功能:就是代理网络用户去取得网络信息。形象的说,它是网络信息的中转站。本文主要介绍怎样使用java代码设置代理server。

主server为了防止被伪用户攻击,统一让用户通过代理server去訪问主server,这样做的安全性是显而易见的。一个图理解代理server及作用

2、使用

在JAVA中怎么设置代理server呢,很easy
public void setServiceProxy(Config config) {
this.config = config;
System.setProperty("http.proxyHost", config.getProxyHost());
System.setProperty("http.proxyPort", config.getProxyPort());
System.setProperty("https.proxyHost", config.getProxyHost());
System.setProperty("https.proxyPort", config.getProxyPort());
}

然后在每个HttpUrlConnection请求中,设置代理serverusername和password。并进行Base64加密(看你代理server的要求,可能因代理server不同而不同)。代码例如以下

private HttpURLConnection getProxyHttpConnection() throws IOException {
String authorization = config.getProxyUser() + ":"
+ config.getProxyPassword();
URL url = new URL(config.getRequestUrl());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Proxy-Authorization",
"Basic " + Base64.encodeBase64String(authorization.getBytes()));
return conn;
}

Base64加密工具。Apache的common包里就有。假设找不到就从这里下载http://commons.apache.org/proper/commons-codec/download_codec.cgi

假设你想取消代理server的设置,也很easy,代码例如以下
public void removeServiceProxy() {
System.getProperties().remove("http.proxyHost");
System.getProperties().remove("http.proxyPort");
System.getProperties().remove("https.proxyHost");
System.getProperties().remove("https.proxyPort");
}

3、总结

代理server是为了主server的安全性,稳定性而设计的,也是很的常见,也是JAVA开发者必须会的东西。假设你正在研究这个,赶紧试试吧。
转载标明出办公室,2014年6一个月 王京结束

版权声明:本文博主原创文章,博客,未经同意不得转载。

最新文章

  1. BZOJ 2743: [HEOI2012]采花
  2. 在实例中说明java的类变量,成员变量和局部变量
  3. 数据库的日志数据库(_log.ldf)文件太大,如何压缩
  4. jQuery实现无限加载瀑布流特效
  5. error: Refusing to undefine while domain managed save image exists
  6. tcpdump抓包
  7. 转载:如何避免代码中的if嵌套
  8. 模板-->扩展欧几里得
  9. The area面积计算
  10. react中常用的一些方法
  11. 关于《Head First Python》一书中print_lol()函数的思考
  12. TensorFlow 2.0 Alpha pip安装指令
  13. 基于Netty 实现简单的私有协议
  14. react native 中实现个别页面禁止截屏
  15. CentOS 搭建git服务
  16. 【C语言】字节对齐(内存对齐)
  17. windows10安装ubuntu16.04双系统
  18. 我是如何将linux用在开发环境中的
  19. PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载 && Linux下的ZipArchive配置开启压缩 &&搞个鸡巴毛,写少了个‘/’号,浪费了一天
  20. Manjaro 更新vim插件或者系统后 YCM失效

热门文章

  1. AE加载不同数据的方法(GeoDatabase空间数据管理)
  2. 数据库中暂时表,表变量和CTE使用优势极其差别
  3. js进阶 12-7 pageY和screenY以及clientY的区别是什么
  4. layui是什么
  5. 是男人就下100层【第四层】——Crazy贪吃蛇(3)
  6. (十一)RabbitMQ消息队列-如何实现高可用
  7. 从源码角度实现一个自己的Promise
  8. 【solr专题之二】配置文件:solr.xml solrConfig.xml schema.xml 分类: H4_SOLR/LUCENCE 2014-07-23 21:30 1959人阅读 评论(0) 收藏
  9. Javascript 获取页面高度(多种浏览器)
  10. redisson