zoukankan      html  css  js  c++  java
  • JAVA如何设置代理server,s取消代理erver

    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一个月 王京结束

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

  • 相关阅读:
    MV*模式的个人理解
    Unlink of file '.git/objects/pack/pack-***.pack' failed. Should I try again? (y/n) (转)
    不定宽高元素的水平垂直居中
    判断是否在微信浏览器中
    HTML5实战与剖析之触摸事件(touchstart、touchmove和touchend)(转)
    清除inline-block元素间距
    rs485多主
    基于状态机的单片机按键短按长按功能的实现
    深入理解FIFO(包含有FIFO深度的解释)——转载
    传递指针的指针(错误的例子)
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4802165.html
Copyright © 2011-2022 走看看