首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

適應中國網絡的 J2ME 連網實戰(二):連接框架與 HTTP 協議詳解

     編輯:J2ME

本文系統介紹 GCF(通用連接框架)七大開放連線方法、HTTP 請求/回應結構、狀態碼分類,並列出 HttpConnection 常用 API 表格,為後續實戰打下理論基礎。

GCF 七種開放連線靜態方法

Connector.open(String name)
Connector.open(String name, int mode, boolean timeouts)
Connector.openDataInputStream(String name)
Connector.openDataOutputStream(String name)
Connector.openInputStream(String name)
Connector.openOutputStream(String name)

通訊三階段

  1. 建立連線(初始化與握手)
  2. 資料交換(輸入/輸出流操作)
  3. 關閉連線(釋放資源)

權限檢查技巧

未簽名 MIDlet 呼叫 Connector.open() 會彈出確認對話框,開發期可用 MIDlet.checkPermission() 預先檢測:

MIDlet.checkPermission("javax.microedition.io.Connector.http");
MIDlet.checkPermission("javax.microedition.io.Connector.socket");

中國三大運營商網絡環境對照表

運營商代理模式代理位址Header Key直連模式
中國移動CMWAP10.0.0.172X-Online-HostCMNET
中國聯通UNIWAP10.0.0.172X-Online-HostUNINET
中國電信CTWAP10.0.0.200未知CTNET

HTTP 請求/回應結構

  • 請求:方法(GET/POST/HEAD)+ Header + Body
  • 回應:狀態行(如 HTTP/1.1 200 OK)+ Header + Body

HttpConnection 常用 API 速查

方法說明
getResponseCode()取得 HTTP 狀態碼
openInputStream() / openDataInputStream()開啟輸入流(觸發真正連線)
openOutputStream()開啟輸出流(POST 請求發送 Body)
setRequestMethod(String)設定 GET/POST/HEAD
setRequestProperty(key, value)設定請求 Header
getHeaderField(String)取得回應 Header

GCF 類階層圖

重要提醒:Connector.open() 僅建立連線物件,真正發起網路連線是在呼叫 getResponseCode()、openInputStream() 等 I/O 方法時;底層以 TCP Socket 實現。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved