Object 內置對象

對象HttpRequest

http 請求消息對象

繼承關係

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<class>Message|new Message()|TEXT;BINARY|value;params;type;data;body;length;stream;lastError|read();readAll();write();json();pack();end();isEnded();clear();sendTo();readFrom()] [<class>HttpMessage|protocol;headers;keepAlive;upgrade;maxHeadersCount;maxBodySize;socket|hasHeader();firstHeader();allHeader();addHeader();setHeader();removeHeader()] [<this>HttpRequest|new HttpRequest()|response;method;address;queryString;cookies;form;query] [object] <:- [Message] [Message] <:- [HttpMessage] [HttpMessage] <:- [HttpRequest] Message new Message() TEXT BINARY value params type data body length stream lastError read() readAll() write() json() pack() end() isEnded() clear() sendTo() readFrom() HttpMessage protocol headers keepAlive upgrade maxHeadersCount maxBodySize socket hasHeader() firstHeader() allHeader() addHeader() setHeader() removeHeader() HttpRequest new HttpRequest() response method address queryString cookies form query object toString() toJSON()

構造函數

HttpRequest

HttpRequest 構造函數,創建一個新的HttpRequest 對象

1
new HttpRequest();

常量

TEXT

指定消息類型1,代表一個文本類型

1
const HttpRequest.TEXT = 1;

BINARY

指定消息類型2,代表一個二進制類型

1
const HttpRequest.BINARY = 2;

成員屬性

response

HttpResponse, 獲取響應消息對象

1
readonly HttpResponse HttpRequest.response;

method

String, 查詢和設置請求方法

1
String HttpRequest.method;

address

String, 查詢和設置請求地址

1
String HttpRequest.address;

queryString

String, 查詢和設置請求查詢字符串

1
String HttpRequest.queryString;

cookies

HttpCollection, 獲取包含消息cookies 的容器

1
readonly HttpCollection HttpRequest.cookies;

form

HttpCollection, 獲取包含消息form 的容器

1
readonly HttpCollection HttpRequest.form;

query

HttpCollection, 獲取包含消息query 的容器

1
readonly HttpCollection HttpRequest.query;

protocol

String, 協議版本信息,允許的格式為:HTTP/#.#

1
String HttpRequest.protocol;

headers

HttpCollection, 包含消息中 http 消息頭的容器,只讀屬性

1
readonly HttpCollection HttpRequest.headers;

keepAlive

Boolean, 查詢和設定是否保持連接

1
Boolean HttpRequest.keepAlive;

upgrade

Boolean, 查詢和設定是否是升級協議

1
Boolean HttpRequest.upgrade;

maxHeadersCount

Integer, 查詢和設置最大請求頭個數,缺省為128

1
Integer HttpRequest.maxHeadersCount;

maxBodySize

Integer, 查詢和設置body 最大尺寸,以MB 為單位,缺省為64

1
Integer HttpRequest.maxBodySize;

socket

Stream, 查詢當前對象的來源socket

1
readonly Stream HttpRequest.socket;

value

String, 消息的基本內容

1
String HttpRequest.value;

params

NArray, 消息的基本參數

1
readonly NArray HttpRequest.params;

type

Integer, 消息類型

1
Integer HttpRequest.type;

data

Value, 查詢消息的數據,此屬性會根據content-type 返回不同數據,為text 時,返回文本,為 json 時返回 json,其它時候返回二進制

1
readonly Value HttpRequest.data;

body

SeekableStream, 包含消息數據部分的流對象

1
SeekableStream HttpRequest.body;

length

Long, 消息數據部分的長度

1
readonly Long HttpRequest.length;

stream

Stream, 查詢消息readFrom 時的流對象

1
readonly Stream HttpRequest.stream;

lastError

String, 查詢和設置消息處理的最後錯誤

1
String HttpRequest.lastError;

成員函數

hasHeader

檢查是否存在指定鍵值的消息頭

1
Boolean HttpRequest.hasHeader(String name);

調用參數:

  • name: String, 指定要檢查的鍵值

返回結果:

  • Boolean, 返回鍵值是否存在

firstHeader

查詢指定鍵值的第一個消息頭

1
String HttpRequest.firstHeader(String name);

調用參數:

  • name: String, 指定要查詢的鍵值

返回結果:

  • String, 返回鍵值所對應的值,若不存在,則返回undefined

allHeader

查詢指定鍵值的全部消息頭

1
NObject HttpRequest.allHeader(String name = "");

調用參數:

  • name: String, 指定要查詢的鍵值,傳遞空字符串返回全部鍵值的結果

返回結果:

  • NObject, 返回鍵值所對應全部值的數組,若數據不存在,則返回null

addHeader

添加一個消息頭,添加數據並不修改已存在的鍵值的消息頭

1
HttpRequest.addHeader(Object map);

調用參數:

  • map: Object, 指定要添加的鍵值數據字典

添加指定名稱的一組消息頭,添加數據並不修改已存在的鍵值的消息頭

1 2
HttpRequest.addHeader(String name, Array values);

調用參數:

  • name: String, 指定要添加的鍵值
  • values: Array, 指定要添加的一組數據

添加一個消息頭,添加數據並不修改已存在的鍵值的消息頭

1 2
HttpRequest.addHeader(String name, String value);

調用參數:

  • name: String, 指定要添加的鍵值
  • value: String, 指定要添加的數據

setHeader

設定一個消息頭,設定數據將修改鍵值所對應的第一個數值,並清除相同鍵值的其餘消息頭

1
HttpRequest.setHeader(Object map);

調用參數:

  • map: Object, 指定要設定的鍵值數據字典

設定指定名稱的一組消息頭,設定數據將修改鍵值所對應的數值,並清除相同鍵值的其餘消息頭

1 2
HttpRequest.setHeader(String name, Array values);

調用參數:

  • name: String, 指定要設定的鍵值
  • values: Array, 指定要設定的一組數據

設定一個消息頭,設定數據將修改鍵值所對應的第一個數值,並清除相同鍵值的其餘消息頭

1 2
HttpRequest.setHeader(String name, String value);

調用參數:

  • name: String, 指定要設定的鍵值
  • value: String, 指定要設定的數據

removeHeader

刪除指定鍵值的全部消息頭

1
HttpRequest.removeHeader(String name);

調用參數:

  • name: String, 指定要刪除的鍵值

read

從流內讀取指定大小的數據,此方法為body 相應方法的別名

1
Buffer HttpRequest.read(Integer bytes = -1) async;

調用參數:

  • bytes: Integer, 指定要讀取的數據量,缺省為讀取隨機大小的數據塊,讀出的數據尺寸取決於設備

返回結果:

  • Buffer, 返回從流內讀取的數據,若無數據可讀,或者連接中斷,則返回null

readAll

從流內讀取剩餘的全部數據,此方法為body 相應方法的別名

1
Buffer HttpRequest.readAll() async;

返回結果:

  • Buffer, 返回從流內讀取的數據,若無數據可讀,或者連接中斷,則返回null

write

寫入給定的數據,此方法為body 相應方法的別名

1
HttpRequest.write(Buffer data) async;

調用參數:

  • data: Buffer, 給定要寫入的數據

json

以JSON 編碼寫入給定的數據

1
Value HttpRequest.json(Value data);

調用參數:

  • data: Value, 給定要寫入的數據

返回結果:

  • Value, 此方法不會返回數據

以JSON 編碼解析消息中的數據

1
Value HttpRequest.json();

返回結果:

  • Value, 返回解析的結果

pack

msgpack 編碼寫入給定的數據

1
Value HttpRequest.pack(Value data);

調用參數:

  • data: Value, 給定要寫入的數據

返回結果:

  • Value, 此方法不會返回數據

msgpack 編碼解析消息中的數據

1
Value HttpRequest.pack();

返回結果:

  • Value, 返回解析的結果

end

設置當前消息處理結束,Chain 處理器不再繼續後面的事務

1
HttpRequest.end();

isEnded

查詢當前消息是否結束

1
Boolean HttpRequest.isEnded();

返回結果:

  • Boolean, 結束則返回true

clear

清除消息的內容

1
HttpRequest.clear();

sendTo

發送格式化消息到給定的流對象

1
HttpRequest.sendTo(Stream stm) async;

調用參數:

  • stm: Stream, 指定接收格式化消息的流對象

readFrom

從給定的緩存流對像中讀取格式化消息,並解析填充對象

1
HttpRequest.readFrom(Stream stm) async;

調用參數:

  • stm: Stream, 指定讀取格式化消息的流對象

toString

返回對象的字符串表示,一般返回"[Native Object]",對象可以根據自己的特性重新實現

1
String HttpRequest.toString();

返回結果:

  • String, 返回對象的字符串表示

toJSON

返回對象的JSON 格式表示,一般返回對象定義的可讀屬性集合

1
Value HttpRequest.toJSON(String key = "");

調用參數:

  • key: String, 未使用

返回結果:

  • Value, 返回包含可JSON 序列化的值