Module 基礎模塊

模塊http

超文本傳輸協議模塊,用以支持http 協議處理,模塊別名:https

對象

Request

創建一個http 請求對象,參見 HttpRequest

1
HttpRequest http.Request;

Response

創建一個http 響應對象,參見 HttpResponse

1
HttpResponse http.Response;

創建一個http cookie 對象,參見 HttpCookie

1
HttpCookie http.Cookie;

Server

創建一個http 服務器,參見 HttpServer

1
HttpServer http.Server;

Client

創建一個http 客戶端,參見 HttpClient

1
HttpClient http.Client;

HttpsServer

創建一個https 服務器,參見 HttpsServer

1
HttpsServer http.HttpsServer;

Handler

創建一個http 協議處理器對象,參見 HttpHandler

1
HttpHandler http.Handler;

Repeater

創建一個http 請求轉發處理器對象,參見 HttpRepeater

1
HttpRepeater http.Repeater;

靜態函數

fileHandler

創建一個http 靜態文件處理器,用以用靜態文件響應http 消息

1 2 3
static Handler http.fileHandler(String root, Object mimes = {}, Boolean autoIndex = false);

調用參數:

  • root: String, 文件根路徑
  • mimes: Object, 擴展mime 設置
  • autoIndex: Boolean, 是否支持瀏覽目錄文件,缺省為false,不支持

返回結果:

  • Handler, 返回一個靜態文件處理器用於處理http 消息

fileHandler 支持gzip 預壓縮,當請求接受gzip 編碼,且相同路徑下filename.ext.gz 文件存在時,將直接返回此文件, 從而避免重複壓縮帶來服務器負載。


setClientCert

設定缺省客戶端證書

1 2
static http.setClientCert(X509Cert crt, PKey key);

調用參數:

  • crt: X509Cert, 證書,用於發送給服務器驗證客戶端
  • key: PKey, 私鑰,用於與客戶端會話

request

發送http 請求到指定的流對象,並返回結果

1 2
static HttpResponse http.request(Stream conn, HttpRequest req) async;

調用參數:

返回結果:


發送http 請求到指定的流對象,並返回結果

1 2 3
static HttpResponse http.request(Stream conn, HttpRequest req, SeekableStream response_body) async;

調用參數:

返回結果:


請求指定的 url,並返回結果

1 2 3
static HttpResponse http.request(String method, String url, Object opts = {}) async;

調用參數:

  • method: String, 指定http 請求方法:GET, POST 等
  • url: String, 指定 url,必須是包含主機的完整 url
  • opts: Object, 指定附加信息

返回結果:

opts 包含請求的附加選項,支持的內容如下:

1 2 3 4 5 6 7 8
{ "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {}, "response_body": SeekableStream //指定接受 resposne 数据的流 }

其中body,json,pack 不得同時出現。缺省為{},不包含任何附加信息


get

用GET 方法請求指定的 url,並返回結果,等同於request("GET", ...)

1 2
static HttpResponse http.get(String url, Object opts = {}) async;

調用參數:

  • url: String, 指定 url,必須是包含主機的完整 url
  • opts: Object, 指定附加信息

返回結果:

opts 包含請求的附加選項,支持的內容如下:

1 2 3 4 5 6 7
{ "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

其中body,json,pack 不得同時出現。缺省為{},不包含任何附加信息


post

用POST 方法請求指定的 url,並返回結果,等同於request("POST", ...)

1 2
static HttpResponse http.post(String url, Object opts = {}) async;

調用參數:

  • url: String, 指定 url,必須是包含主機的完整 url
  • opts: Object, 指定附加信息

返回結果:

opts 包含請求的附加選項,支持的內容如下:

1 2 3 4 5 6 7
{ "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

其中body,json,pack 不得同時出現。缺省為{},不包含任何附加信息


del

用DELETE 方法請求指定的 url,並返回結果,等同於request("DELETE", ...)

1 2
static HttpResponse http.del(String url, Object opts = {}) async;

調用參數:

  • url: String, 指定 url,必須是包含主機的完整 url
  • opts: Object, 指定附加信息

返回結果:

opts 包含請求的附加選項,支持的內容如下:

1 2 3 4 5 6 7
{ "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

其中body,json,pack 不得同時出現。缺省為{},不包含任何附加信息


put

用PUT 方法請求指定的 url,並返回結果,等同於request("PUT", ...)

1 2
static HttpResponse http.put(String url, Object opts = {}) async;

調用參數:

  • url: String, 指定 url,必須是包含主機的完整 url
  • opts: Object, 指定附加信息

返回結果:

opts 包含請求的附加選項,支持的內容如下:

1 2 3 4 5 6 7
{ "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

其中body,json,pack 不得同時出現。缺省為{},不包含任何附加信息


patch

用PATCH 方法請求指定的 url,並返回結果,等同於request("PATCH", ...)

1 2
static HttpResponse http.patch(String url, Object opts = {}) async;

調用參數:

  • url: String, 指定 url,必須是包含主機的完整 url
  • opts: Object, 指定附加信息

返回結果:

opts 包含請求的附加選項,支持的內容如下:

1 2 3 4 5 6 7
{ "query": {}, "body": SeekableStream | Buffer | String | {}, "json": {}, "pack": {}, "headers": {} }

其中body,json,pack 不得同時出現。缺省為{},不包含任何附加信息

靜態屬性

STATUS_CODES

Array, 返回標準的HTTP 響應狀態碼的集合,以及各自的簡短描述。

1
static readonly Array http.STATUS_CODES;

cookies

NArray, 返回http客戶端的 HttpCookie 對象列表

1
static readonly NArray http.cookies;

timeout

Integer, 查詢和設置超時時間

1
static Integer http.timeout;

enableCookie

Boolean, cookie 功能開關,默認開啟

1
static Boolean http.enableCookie;

autoRedirect

Boolean, 自動redirect 功能開關,默認開啟

1
static Boolean http.autoRedirect;

enableEncoding

Boolean, 自動解壓縮功能開關,默認開啟

1
static Boolean http.enableEncoding;

maxBodySize

Integer, 查詢和設置body 最大尺寸,以MB 為單位,缺省為-1,不限制尺寸

1
static Integer http.maxBodySize;

userAgent

String, 查詢和設置http 請求中的瀏覽器標識

1
static String http.userAgent;

poolSize

Integer, 查詢和設置keep-alive 最大緩存連接數,缺省128

1
static Integer http.poolSize;

poolTimeout

Integer, 查詢和設置keep-alive 緩存連接超時時間,缺省10000 ms

1
static Integer http.poolTimeout;

proxyAgent

String, 查詢和設置代理服務器

1
static String http.proxyAgent;