DANCE WITH JAVA

          開發出高質量的系統

          常用鏈接

          統計

          積分與排名

          好友之家

          最新評論

          通過httpClient連接 tomcat https (ssl)

           

          HttpClient連接tomcat https(使用私有證書)

          步驟一:

          www.apache.org下載所需的類包

          commons-codec-1.3.jar

          commons-httpclient-3.1-rc1.jar

          commons-logging.jar

          步驟二:

          制作證書:

          keytool -genkey -alias tomcat -keyalg RSA

          任意輸入,最后一個提示輸入回車(保證兩個密碼相等)否則tomcat不能啟動.

          默認生成的文件在用戶目錄下.keystore

          步驟三:

          配置tomcat

          更改tomcat配置文件server.xml

          加入

          <Connector port="8443" maxHttpHeaderSize="8192"

                         maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

                         enableLookups="false" disableUploadTimeout="true"

                         acceptCount="100" scheme="https" secure="true"

                         clientAuth="false" sslProtocol="TLS"

                                  keystoreFile="C:\.keystore"   keystorePass="123456"

                                  />

          其中keystoreFile是剛生成文件的帶全路徑的名字

          keystorePass是剛才建立證書時候的名字

          啟動tomcat,訪問https:\\localhost:8443/如果能正常看到,說明tomcathttps配置成功.

          步驟四:

          生成jdk能使用的證書
           1,用ie導出證書(導出方法:http://www.ibm.com/developerworks/cn/opensource/os-httpclient/#N10114)

          2,假設上邊導出文件的名字叫tt.cer

          執行(確保配置了java  home)

          keytool -import -noprompt -keystore D:\Java\jdk1.5.0_06\jre\lib\security\carcert -alias tomcat -file tt.cer –trustcacerts

          其中紅色的部分替換成自己jre的路徑,alias同建立證書時的名字,file時剛才導出的證書的名字

           

          會提示輸入密碼,輸入剛才建立證書時輸入的密碼

           

          步驟五:

          編寫代碼

           

          import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
          import org.apache.commons.httpclient.HttpClient;
          import org.apache.commons.httpclient.HttpStatus;
          import org.apache.commons.httpclient.methods.GetMethod;
          import org.apache.commons.httpclient.params.HttpMethodParams;


          public class Test {
              
          public static void main(String[] args) throws Exception{
          //        normal();
                  ssl();

              }

              
          public static void ssl()throws Exception{
                  String url 
          = "https://127.0.0.1:8443/ts/";
                  get(url);
              }

              
          public static void normal()throws Exception{
                  String url 
          = "http://127.0.0.1:8080/ts/";
                  get(url);
              }

              
          public static void get(String url) throws Exception{
                  HttpClient client 
          = new HttpClient();
                  GetMethod getMethod 
          = new GetMethod(url);
                  
          //設置成了默認的恢復策略,在發生異常時候將自動重試3次,在這里你也可以設置成自定義的恢復策略
                  getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, 
                              
          new DefaultHttpMethodRetryHandler()); 
                  
          //執行getMethod
                  int statusCode = client.executeMethod(getMethod);
                  
          if (statusCode != HttpStatus.SC_OK) {
                    System.err.println(
          "Method failed: " + getMethod.getStatusLine());
                  }

                  
          byte[] responseBody = getMethod.getResponseBody();
                  System.out.println(
          new String(responseBody));
                  getMethod.releaseConnection();
              }

          }

           

          普通連接和ssl連接只有一個差距就是url

           

           

          posted on 2007-07-27 18:01 dreamstone 閱讀(7648) 評論(0)  編輯  收藏 所屬分類: 利器其它開源框架

          主站蜘蛛池模板: 邢台县| 惠安县| 定南县| 德惠市| 武汉市| 河东区| 中西区| 贵溪市| 平安县| 昆山市| 莲花县| 周口市| 纳雍县| 三原县| 策勒县| 巴林左旗| 安远县| 罗田县| 霍邱县| 禹城市| 仁化县| 南乐县| 枣阳市| 大丰市| 唐山市| 吉木乃县| 策勒县| 衡南县| 怀柔区| 曲水县| 大安市| 英吉沙县| 林芝县| 莆田市| 南溪县| 郎溪县| 临高县| 石河子市| 长沙市| 基隆市| 海伦市|