對象HttpMessage
http 基礎消息對象
繼承關係
常量
TEXT
指定消息類型1,代表一個文本類型
1const HttpMessage.TEXT = 1;
BINARY
指定消息類型2,代表一個二進制類型
1const HttpMessage.BINARY = 2;
成員屬性
protocol
String, 協議版本信息,允許的格式為:HTTP/#.#
1String HttpMessage.protocol;
headers
HttpCollection, 包含消息中 http 消息頭的容器,只讀屬性
1readonly HttpCollection HttpMessage.headers;
keepAlive
Boolean, 查詢和設定是否保持連接
1Boolean HttpMessage.keepAlive;
upgrade
Boolean, 查詢和設定是否是升級協議
1Boolean HttpMessage.upgrade;
maxHeadersCount
Integer, 查詢和設置最大請求頭個數,缺省為128
1Integer HttpMessage.maxHeadersCount;
maxBodySize
Integer, 查詢和設置body 最大尺寸,以MB 為單位,缺省為64
1Integer HttpMessage.maxBodySize;
socket
Stream, 查詢當前對象的來源socket
1readonly Stream HttpMessage.socket;
value
String, 消息的基本內容
1String HttpMessage.value;
params
NArray, 消息的基本參數
1readonly NArray HttpMessage.params;
type
Integer, 消息類型
1Integer HttpMessage.type;
data
Value, 查詢消息的數據,此屬性會根據content-type 返回不同數據,為text 時,返回文本,為 json 時返回 json,其它時候返回二進制
1readonly Value HttpMessage.data;
body
SeekableStream, 包含消息數據部分的流對象
1SeekableStream HttpMessage.body;
length
Long, 消息數據部分的長度
1readonly Long HttpMessage.length;
stream
Stream, 查詢消息readFrom 時的流對象
1readonly Stream HttpMessage.stream;
lastError
String, 查詢和設置消息處理的最後錯誤
1String HttpMessage.lastError;
成員函數
hasHeader
檢查是否存在指定鍵值的消息頭
1Boolean HttpMessage.hasHeader(String name);
調用參數:
- name: String, 指定要檢查的鍵值
返回結果:
- Boolean, 返回鍵值是否存在
firstHeader
查詢指定鍵值的第一個消息頭
1String HttpMessage.firstHeader(String name);
調用參數:
- name: String, 指定要查詢的鍵值
返回結果:
- String, 返回鍵值所對應的值,若不存在,則返回undefined
allHeader
查詢指定鍵值的全部消息頭
1NObject HttpMessage.allHeader(String name = "");
調用參數:
- name: String, 指定要查詢的鍵值,傳遞空字符串返回全部鍵值的結果
返回結果:
- NObject, 返回鍵值所對應全部值的數組,若數據不存在,則返回null
addHeader
添加一個消息頭,添加數據並不修改已存在的鍵值的消息頭
1HttpMessage.addHeader(Object map);
調用參數:
- map: Object, 指定要添加的鍵值數據字典
添加指定名稱的一組消息頭,添加數據並不修改已存在的鍵值的消息頭
1
2HttpMessage.addHeader(String name,
Array values);
調用參數:
- name: String, 指定要添加的鍵值
- values: Array, 指定要添加的一組數據
添加一個消息頭,添加數據並不修改已存在的鍵值的消息頭
1
2HttpMessage.addHeader(String name,
String value);
調用參數:
- name: String, 指定要添加的鍵值
- value: String, 指定要添加的數據
setHeader
設定一個消息頭,設定數據將修改鍵值所對應的第一個數值,並清除相同鍵值的其餘消息頭
1HttpMessage.setHeader(Object map);
調用參數:
- map: Object, 指定要設定的鍵值數據字典
設定指定名稱的一組消息頭,設定數據將修改鍵值所對應的數值,並清除相同鍵值的其餘消息頭
1
2HttpMessage.setHeader(String name,
Array values);
調用參數:
- name: String, 指定要設定的鍵值
- values: Array, 指定要設定的一組數據
設定一個消息頭,設定數據將修改鍵值所對應的第一個數值,並清除相同鍵值的其餘消息頭
1
2HttpMessage.setHeader(String name,
String value);
調用參數:
- name: String, 指定要設定的鍵值
- value: String, 指定要設定的數據
removeHeader
刪除指定鍵值的全部消息頭
1HttpMessage.removeHeader(String name);
調用參數:
- name: String, 指定要刪除的鍵值
read
從流內讀取指定大小的數據,此方法為body 相應方法的別名
1Buffer HttpMessage.read(Integer bytes = -1) async;
調用參數:
- bytes: Integer, 指定要讀取的數據量,缺省為讀取隨機大小的數據塊,讀出的數據尺寸取決於設備
返回結果:
- Buffer, 返回從流內讀取的數據,若無數據可讀,或者連接中斷,則返回null
readAll
從流內讀取剩餘的全部數據,此方法為body 相應方法的別名
1Buffer HttpMessage.readAll() async;
返回結果:
- Buffer, 返回從流內讀取的數據,若無數據可讀,或者連接中斷,則返回null
write
寫入給定的數據,此方法為body 相應方法的別名
1HttpMessage.write(Buffer data) async;
調用參數:
- data: Buffer, 給定要寫入的數據
json
以JSON 編碼寫入給定的數據
1Value HttpMessage.json(Value data);
調用參數:
- data: Value, 給定要寫入的數據
返回結果:
- Value, 此方法不會返回數據
以JSON 編碼解析消息中的數據
1Value HttpMessage.json();
返回結果:
- Value, 返回解析的結果
pack
以 msgpack 編碼寫入給定的數據
1Value HttpMessage.pack(Value data);
調用參數:
- data: Value, 給定要寫入的數據
返回結果:
- Value, 此方法不會返回數據
以 msgpack 編碼解析消息中的數據
1Value HttpMessage.pack();
返回結果:
- Value, 返回解析的結果
end
設置當前消息處理結束,Chain 處理器不再繼續後面的事務
1HttpMessage.end();
isEnded
查詢當前消息是否結束
1Boolean HttpMessage.isEnded();
返回結果:
- Boolean, 結束則返回true
clear
清除消息的內容
1HttpMessage.clear();
sendTo
發送格式化消息到給定的流對象
1HttpMessage.sendTo(Stream stm) async;
調用參數:
- stm: Stream, 指定接收格式化消息的流對象
readFrom
從給定的緩存流對像中讀取格式化消息,並解析填充對象
1HttpMessage.readFrom(Stream stm) async;
調用參數:
- stm: Stream, 指定讀取格式化消息的流對象
toString
返回對象的字符串表示,一般返回"[Native Object]",對象可以根據自己的特性重新實現
1String HttpMessage.toString();
返回結果:
- String, 返回對象的字符串表示
toJSON
返回對象的JSON 格式表示,一般返回對象定義的可讀屬性集合
1Value HttpMessage.toJSON(String key = "");
調用參數:
- key: String, 未使用
返回結果:
- Value, 返回包含可JSON 序列化的值