亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        JavaSE6新特性:HTTP增強

        字號:

        2006 年底,Sun 公司發(fā)布了 Java Standard Edition 6(Java SE 6)的最終正式版,代號 Mustang(野馬)。跟 Tiger(Java SE 5)相比,Mustang 在性能方面有了不錯的提升。與 Tiger 在 API 庫方面的大幅度加強相比,雖然 Mustang 在 API 庫方面的新特性顯得不太多,但是也提供了許多實用和方便的功能:在腳本,WebService,XML,編譯器 API,數(shù)據(jù)庫,JMX,網(wǎng)絡和 Instrumentation 方面都有不錯的新特性和功能加強。 本系列文章主要介紹 Java SE 6 在 API 庫方面的部分新特性,通過一些例子和講解,幫助開發(fā)者在編程實踐當中更好的運用 Java SE 6,提高開發(fā)效率。
            本文是系列文章的第二篇,介紹了Java SE 6 在 HTTP 方面的新特性。
            概述
            Java 語言從誕生的那天起,就非常注重網(wǎng)絡編程方面的應用。隨著互聯(lián)網(wǎng)應用的飛速發(fā)展,Java 的基礎類庫也不斷地對網(wǎng)絡相關的 API 進行加強和擴展。在 Java SE 6 當中,圍繞著 HTTP 協(xié)議出現(xiàn)了很多實用的新特性:NTLM 認證提供了一種 Window 平臺下較為安全的認證機制;JDK 當中提供了一個輕量級的 HTTP 服務器;提供了較為完善的 HTTP Cookie 管理功能;更為實用的 NetworkInterface;DNS 域名的國際化支持等等。
            NTLM 認證
            不可避免,網(wǎng)絡中有很多資源是被安全域保護起來的。訪問這些資源需要對用戶的身份進行認證。下面是一個簡單的例子:
            以下是引用片段:
            import java.net.*;
            import java.io.*;
            public class Test {
            public static void main(String[] args) throws Exception {
            URL url = new URL("http://PROTECTED.com");
            URLConnection connection = url.openConnection();
            InputStream in = connection.getInputStream();
            byte[] data = new byte[1024];
            while(in.read(data)>0)
            {
            //do something for data
            }
            in.close();
            }
            }
            當 Java 程序試圖從一個要求認證的網(wǎng)站讀取信息的時候,也就是說,從聯(lián)系于 http://Protected.com 這個 URLConnection 的 InputStream 中 read 數(shù)據(jù)時,會引發(fā) FileNotFoundException。盡管筆者認為,這個 Exception 的類型與實際錯誤發(fā)生的原因實在是相去甚遠;但這個錯誤確實是由網(wǎng)絡認證失敗所導致的。
            要解決這個問題,有兩種方法:
            其一,是給 URLConnection 設定一個“Authentication”屬性:
            以下是引用片段:
            String credit = USERNAME + ":" + PASSWORD;
            String encoding = new sun.misc.BASE64Encoder().encode (credit.getBytes());
            connection.setRequestProperty ("Authorization", "Basic " + encoding);
            這里假設 http://PROTECTED.COM 使用了基本(Basic)認證類型。