無為

          無為則可為,無為則至深!

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks
          這是<<java網絡編程>> 中客戶端的例子
          這本書里還有個服務器端的例子
          不過太長了,
          // URLGrab.java

          import java.io.*;
          import java.net.*;
          import javax.security.cert.Certificate;
          import com.sun.net.ssl.HttpsURLConnection;   // J2SDK 1.3

          // import java.net.ssl.HttpsURLConnection;      // J2SDK 1.4

          /**
           * A simple application that grabs the contents of an URL and dumps
           * them to a file. The URL may be a https URL. Some properties of the
           * connection are displayed to standard output.
           */
          public class URLGrab {

            /**
             * The location of the https protocol handler
             */
            private static final String PROTOCOL_HANDLERS = 
              "com.sun.net.ssl.internal.www.protocol";

            /**
             * Retrieves the contents and other information about a connection given
             * on the command line.
             * @param args the command line arguments
             * @throws Exception if something went wrong
             */
            public static void main(String args[]) throws Exception {
              System.setProperty("java.protocol.handler.pkgs", PROTOCOL_HANDLERS);

              if (args.length != 2) {
                System.out.println("Please give an URL and a filename.");
              } else {
                URLConnection urlConn = new URL(args[0]).openConnection();
                urlConn.connect();                 // connect to the server
                displayProperties(urlConn);        // display connection properties
                writeContents(urlConn, args[1]);   // write URL contents to file
              } 
            } 

            /**
             * Writes the contents of the URL to a file
             * @param urlConn The connection
             * @param filename The name of the file to write to
             * @throws IOException if a network or other I/O error occurred
             */
            private static void writeContents(URLConnection urlConn, 
                                              String filename) throws IOException {
              InputStream in = urlConn.getInputStream();
              OutputStream out = new FileOutputStream(filename);
              try {
                byte[] buffer = new byte[512];
                int bytesRead;
                while ((bytesRead = in.read(buffer)) > 0) {
                  out.write(buffer, 0, bytesRead);
                } 
              } 
              finally {
                try {
                  out.close();
                } catch (Exception e) { /* do nothing */
                } 
                try {
                  in.close();
                } catch (Exception e) { /* do nothing */
                } 
              } 
            } 

            /**
             * Displays some URL connection properties
             * @param urlConn The connection
             */
            private static void displayProperties(URLConnection urlConn) {
              System.out.println("Content Length: " + urlConn.getContentLength());
              System.out.println("Content Type: " + urlConn.getContentType());
              System.out.println("Content Encoding: " + urlConn.getContentEncoding());
              if (urlConn instanceof HttpsURLConnection) {
                displaySecureProperties((HttpsURLConnection) urlConn);
              } 
            } 

            /**
             * Displays some https URL connection properties
             * @param urlConn The secure connection
             */
            private static void displaySecureProperties(HttpsURLConnection urlConn) {
              System.out.println("Cipher Suite: " + urlConn.getCipherSuite());
              Certificate[] chain = urlConn.getServerCertificateChain();
              for (int i = 0; chain != null && i < chain.length; i++) {
                System.out.println("Certificate #" + (i + 1) + ":\n" + chain[i]);
              } 
            } 
          }

          我試了一下,工作正常

          凡是有該標志的文章,都是該blog博主Caoer(草兒)原創,凡是索引、收藏
          、轉載請注明來處和原文作者。非常感謝。

          posted on 2005-12-14 13:06 草兒 閱讀(402) 評論(0)  編輯  收藏 所屬分類: Java編程經驗談
          主站蜘蛛池模板: 石柱| 松江区| 五原县| 桑植县| 宁德市| 民丰县| 开平市| 大同县| 安顺市| 元江| 招远市| 长宁县| 宝坻区| 同江市| 秭归县| 土默特左旗| 辛集市| 灌南县| 庄河市| 公主岭市| 长沙县| 当阳市| 南城县| 绥中县| 黑龙江省| 白沙| 霍城县| 元阳县| 新野县| 泰宁县| 武山县| 尖扎县| 东明县| 石景山区| 台中市| 安乡县| 巴中市| 临泽县| 徐水县| 横峰县| 阳谷县|