HttpURLConnection 用法詳解




一.繼承關系

   1.  java.lang.Object

          --java.net.URLConnection

               --java.net.HttpURLConnection

二.URLConnection類

  1.URLConnection代表應用程序和 URL 之間的通信鏈接。

  2.作用:代表應用程序和 URL 之間的通信鏈接;

  3. 創建一個到 URL 的連接需要幾個步驟:

   (1)通過在 URL 上調用 openConnection 方法創建連接對象;

   (2)處理設置參數和一般請求屬性;

   (3)使用 connect 方法建立到遠程對象的實際連接;

   (4)遠程對象變為可用。遠程對象的頭字段和內容變為可訪問;

三.HttpURLConnection

  1 每個 HttpURLConnection 實例都可用於生成單個請求,但是其他實例可以透明地共享連接到 HTTP 服務器的基礎網絡。請求后在 HttpURLConnection 的 InputStream 或 OutputStream 上調用 close() 方法可以釋放與此實例關聯的網絡資源,但對共享的持久連接沒有任何影響。如果在調用 disconnect() 時持久連接空閑,則可能關閉基礎套接字;

  2. 對於Connection的對象的設置很重要,是有順序的;

     connection的設置(很多set函數)必須在函數執行之前完成;Outputstream的寫操作必須在Inputstream讀操作之前。

四.用法

     1.創建連接:

     URL url = new URL("http://localhost:8080/TestHttpURLConnectionPro/index.jsp"); 

     HttpURLConnection conn = ( HttpURLConnection) url.openConnection();

  2.設置Connection參數:

     conn.setRequestMethod( "POST");        // 提交模式

     conn.setRequestProperty( "Content-Type", "application/json;charset=UTF-8" );               //設置請求屬性

     conn.setConnectTimeout(100000); //連接超時 單位毫秒

     conn.setReadTimeout(100000);    //讀取超時 單位毫秒

     conn.setDoOutput( true);         //是否輸入參數

     conn.setDoInput( true);        //是否讀取參數

    3.連接:

     conn.connect();

   4.獲取寫數據流:

     OutputStream outStrm = httpUrlConnection.getOutputStream();

   5.寫數據:

     outStrm.write(bytes); // 輸入參數

     outStrm. flush();

     outStrm.close();

   6.讀數據:

     InputStream in = conn.getInputStream();

     int count=conn.getContentLength();//獲取遠程資源長度

     byte[] buffer = new byte[count];

     ByteArrayOutputStream baos = new ByteArrayOutputStream();

     for ( int len = 0; (len = in.read(buffer)) > 0;) {

          baos.write(buffer, 0, len);

     }

     String returnValue = new String(baos.toByteArray(), "utf-8" );

     reg= JSON. parseObject(returnValue, ReturnMessage.class );

     baos.flush();

     baos.close();

     in.close();

     conn.disconnect();

 

 

HttpURLConnection 用法詳解

一.繼承關系

1. java.lang.Object

--java.net.URLConnection

--java.net.HttpURLConnection

二.URLConnection類

1.URLConnection代表應用程序和 URL 之間的通信鏈接。

2.作用:代表應用程序和 URL 之間的通信鏈接;

3. 創建一個到 URL 的連接需要幾個步驟:

(1)通過在 URL 上調用 openConnection 方法創建連接對象;

(2)處理設置參數和一般請求屬性;

(3)使用 connect 方法建立到遠程對象的實際連接;

(4)遠程對象變為可用。遠程對象的頭字段和內容變為可訪問;

三.HttpURLConnection

1 每個 HttpURLConnection 實例都可用於生成單個請求,但是其他實例可以透明地共享連接到 HTTP 服務器的基礎網絡。請求后在 HttpURLConnection 的 InputStream 或 OutputStream 上調用 close() 方法可以釋放與此實例關聯的網絡資源,但對共享的持久連接沒有任何影響。如果在調用 disconnect() 時持久連接空閑,則可能關閉基礎套接字;

2. 對於Connection的對象的設置很重要,是有順序的;

connection的設置(很多set函數)必須在函數執行之前完成;Outputstream的寫操作必須在Inputstream讀操作之前。

四.用法

1.創建連接:

URL url = new URL("http://localhost:8080/TestHttpURLConnectionPro/index.jsp");

HttpURLConnection conn = ( HttpURLConnection) url.openConnection();

2.設置Connection參數:

conn.setRequestMethod( "POST"); // 提交模式

conn.setRequestProperty( "Content-Type", "application/json;charset=UTF-8" ); //設置請求屬性

conn.setConnectTimeout(100000); //連接超時 單位毫秒

conn.setReadTimeout(100000); //讀取超時 單位毫秒

conn.setDoOutput( true); //是否輸入參數

conn.setDoInput( true); //是否讀取參數

3.連接:

conn.connect();

4.獲取寫數據流:

OutputStream outStrm = httpUrlConnection.getOutputStream();

5.寫數據:

outStrm.write(bytes); // 輸入參數

outStrm. flush();

outStrm.close();

6.讀數據:

InputStream in = conn.getInputStream();

int count=conn.getContentLength();//獲取遠程資源長度

byte[] buffer = newbyte[count];

ByteArrayOutputStream baos = new ByteArrayOutputStream();

for ( int len = 0; (len = in.read(buffer)) > 0;) {

baos.write(buffer, 0, len);

}

String returnValue = new String(baos.toByteArray(), "utf-8" );

reg= JSON. parseObject(returnValue, ReturnMessage.class );

baos.flush();

baos.close();

in.close();

conn.disconnect();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM