Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤與異常

Java 多執行緒

Java 同步

Java 網路程式設計

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 雜項

Java API 與框架

Java 類參考

Java 有用資源

Java - HttpURLConnection setChunkedStreamingMode()



Java HttpURLConnection setChunkedStreamingMode() 方法在內容長度事先未知的情況下,啟用 HTTP 請求體的流式傳輸而無需內部緩衝。在此模式下,使用分塊傳輸編碼傳送請求體。注意,並非所有 HTTP 伺服器都支援此模式。

啟用輸出流後,無法自動處理身份驗證和重定向。如果需要身份驗證或重定向,則在讀取響應時將丟擲 HttpRetryException。可以查詢此異常以獲取錯誤詳細資訊。此方法必須在 URLConnection 連線之前呼叫。

宣告

以下是 java.net.HttpURLConnection.setChunkedStreamingMode() 方法的宣告

public void setChunkedStreamingMode(int chunklen)

引數

chunklen − 每個塊中寫入的位元組數。如果 chunklen 小於或等於零,則將使用預設值。

返回值

異常

IllegalStateException − 如果 URLConnection 已經連線或已啟用其他流模式。

示例 1

以下示例演示瞭如何使用 Java HttpURLConnection setChunkedStreamingMode() 方法處理使用 https 協議的有效 url。在此示例中,我們正在建立 URL 類的例項。使用 url.openConnection() 方法,我們獲取 HttpURLConnection 例項。使用 getInputStream(),我們獲取網站主頁的內容並打印出來 -

package com.tutorialspoint;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpUrlConnectionDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("https://tutorialspoint.tw/index1.htm?language=en#j2se");
         HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
         urlConnection.setChunkedStreamingMode(1000);  
		 urlConnection.setDoOutput(true);
         urlConnection.connect();  
         System.out.println("Connected.");  
         if(urlConnection.getInputStream() != null) {
            BufferedReader in = new BufferedReader(
               new InputStreamReader(urlConnection.getInputStream()));
            String content = "";
            String current;
            while((current = in.readLine()) != null) {
               content += current;
            }
            System.out.println(content);
         }else {
            System.out.println("Input Stream is null");
         }
         urlConnection.disconnect();  
         System.out.println("Disconnected.");  
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

讓我們編譯並執行以上程式,這將產生以下結果 -

輸出

Connected.
<!DOCTYPE html><html lang="en"><head><title>Online Tutorials Library....
Disconnected.

示例 2

以下示例演示瞭如何使用 Java HttpURLConnection setChunkedStreamingMode() 方法處理使用 http 協議的有效 url。在此示例中,我們正在建立 URL 類的例項。使用 url.openConnection() 方法,我們獲取 HttpURLConnection 例項。使用 getInputStream(),我們獲取網站主頁的內容並打印出來 -

package com.tutorialspoint;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpUrlConnectionDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("https://tutorialspoint.tw/index1.htm?language=en#j2se");
         HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
         urlConnection.setChunkedStreamingMode(1000);  
		 urlConnection.setDoOutput(true);
         urlConnection.connect();  
         System.out.println("Connected.");  
         if(urlConnection.getInputStream() != null) {
            BufferedReader in = new BufferedReader(
               new InputStreamReader(urlConnection.getInputStream()));
            String content = "";
            String current;
            while((current = in.readLine()) != null) {
               content += current;
            }
            System.out.println(content);
         }else {
            System.out.println("Input Stream is null");
         }
         urlConnection.disconnect();  
         System.out.println("Disconnected.");  
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

讓我們編譯並執行以上程式,這將產生以下結果 -

輸出

Connected.
<!DOCTYPE html><html lang="en"><head><title>Online Tutorials Library....
Disconnected.

示例 3

以下示例演示瞭如何使用 Java HttpURLConnection setChunkedStreamingMode() 方法處理使用 http 協議的有效 url。在此示例中,我們正在建立 URL 類的例項。使用 url.openConnection() 方法,我們獲取 HttpURLConnection 例項。使用 getInputStream(),我們獲取網站主頁的內容並打印出來 -

package com.tutorialspoint;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpUrlConnectionDemo {
   public static void main(String [] args) {
      try {
         URL url = new URL("http://www.google.com");
         HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
         urlConnection.setChunkedStreamingMode(1000);  
		 urlConnection.setDoOutput(true);
         urlConnection.connect();  
         System.out.println("Connected.");  
         if(urlConnection.getInputStream() != null) {
            BufferedReader in = new BufferedReader(
               new InputStreamReader(urlConnection.getInputStream()));
            String content = "";
            String current;
            while((current = in.readLine()) != null) {
               content += current;
            }
            System.out.println(content);
         }else {
            System.out.println("Input Stream is null");
         }
         urlConnection.disconnect();  
         System.out.println("Disconnected.");  
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

讓我們編譯並執行以上程式,這將產生以下結果 -

輸出

Connected.
java.io.IOException: Server returned HTTP response code: 405 for URL: http://www.google.com
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at com.tutorialspoint.HttpUrlConnectionDemo.main(HttpUrlConnectionDemo.java:18)
java_httpurlconnection.htm
廣告

© . All rights reserved.