DANCE WITH JAVA

          開發(fā)出高質(zhì)量的系統(tǒng)

          常用鏈接

          統(tǒng)計

          積分與排名

          好友之家

          最新評論

          通過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不能啟動.

          默認(rèn)生成的文件在用戶目錄下.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導(dǎo)出證書(導(dǎo)出方法:http://www.ibm.com/developerworks/cn/opensource/os-httpclient/#N10114)

          2,假設(shè)上邊導(dǎo)出文件的名字叫tt.cer

          執(zhí)行(確保配置了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時剛才導(dǎo)出的證書的名字

           

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

           

          步驟五:

          編寫代碼

           

          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);
                  
          //設(shè)置成了默認(rèn)的恢復(fù)策略,在發(fā)生異常時候?qū)⒆詣又卦?次,在這里你也可以設(shè)置成自定義的恢復(fù)策略
                  getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, 
                              
          new DefaultHttpMethodRetryHandler()); 
                  
          //執(zhí)行g(shù)etMethod
                  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 閱讀(7647) 評論(0)  編輯  收藏 所屬分類: 利器其它開源框架

          主站蜘蛛池模板: 乌拉特前旗| 巨野县| 四子王旗| 唐海县| 莱西市| 玛多县| 北流市| 长岭县| 湖南省| 贵德县| 徐州市| 广德县| 淳安县| 莱芜市| 开阳县| 礼泉县| 西宁市| 疏附县| 历史| 兰溪市| 乌审旗| 墨江| 浪卡子县| 万盛区| 龙岩市| 探索| 鄄城县| 皮山县| 公安县| 肃宁县| 沅陵县| 临漳县| 巫山县| 铜山县| 大冶市| 河曲县| 屏南县| 肥城市| 石棉县| 云浮市| 威远县|