Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤和異常

Java 多執行緒

Java 同步

Java 網路

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 雜項

Java API 和框架

Java 類參考

Java 有用資源

Java - HttpURLConnection setFixedLengthStreamingMode() 方法



Java HttpURLConnection setFixedLengthStreamingMode() 方法允許在預先知道內容長度的情況下,無內部緩衝地流式傳輸 HTTP 請求正文。

如果應用程式嘗試寫入的資料量超過指示的內容長度,或者在寫入指示的數量之前關閉 OutputStream,則會丟擲異常。

宣告

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

public void setFixedLengthStreamingMode(long contentLength)

引數

contentLength - 將寫入 OutputStream 的位元組數。

返回值

異常

IllegalStateException - 如果 URLConnection 已經連線或已經啟用了其他流式傳輸模式。

IllegalArgumentException - 如果指定的內容長度小於零。

示例 1

以下示例演示瞭如何對具有 https 協議的有效 url 使用 Java HttpURLConnection setFixedLengthStreamingMode() 方法。在此示例中,我們建立了一個 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.setFixedLengthStreamingMode(1000L);  
		 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: insufficient data written
	at sun.net.www.protocol.http.HttpURLConnection$StreamingOutputStream.close(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
	at com.tutorialspoint.HttpUrlConnectionDemo.main(HttpUrlConnectionDemo.java:18)

示例 2

以下示例演示瞭如何對具有 http 協議的有效 url 使用 Java HttpURLConnection setFixedLengthStreamingMode() 方法。在此示例中,我們建立了一個 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.setFixedLengthStreamingMode(1000L);  
		 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: insufficient data written
	at sun.net.www.protocol.http.HttpURLConnection$StreamingOutputStream.close(Unknown Source)
	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)

示例 3

以下示例演示瞭如何對具有 http 協議的有效 url 使用 Java HttpURLConnection setFixedLengthStreamingMode() 方法。在此示例中,我們建立了一個 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.setFixedLengthStreamingMode(1000L);  
		 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: insufficient data written
	at sun.net.www.protocol.http.HttpURLConnection$StreamingOutputStream.close(Unknown Source)
	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.