Module 基础模块

模块 http

超文本传输协议模块,用以支持 http 协议处理

对象

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;

静态函数

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 文件存在时,将直接返回此文件, 从而避免重复压缩带来服务器负载。


request

发送 http 请求到指定的流对象,并返回结果

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

调用参数:

返回结果:


请求指定的 url,并返回结果

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

调用参数:

  • method: String, 指定 http 请求方法:GET, POST 等
  • url: String, 指定 url,必须是包含主机的完整 url
  • headers: Object, 指定附加的 http 头,缺省无附加头

返回结果:


请求指定的 url,并返回结果

1 2 3 4
static HttpResponse http.request(String method, String url, SeekableStream body, Map headers) async;

调用参数:

  • method: String, 指定 http 请求方法:GET, POST 等
  • url: String, 指定 url,必须是包含主机的完整 url
  • body: SeekableStream, 指定发送的 body 内容
  • headers: Map, 指定附加的 http 头

返回结果:


请求指定的 url,并返回结果

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

调用参数:

  • method: String, 指定 http 请求方法:GET, POST 等
  • url: String, 指定 url,必须是包含主机的完整 url
  • body: SeekableStream, 指定发送的 body 内容
  • headers: Object, 指定附加的 http 头,缺省无附加头

返回结果:


请求指定的 url,并返回结果

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

调用参数:

  • method: String, 指定 http 请求方法:GET, POST 等
  • url: String, 指定 url,必须是包含主机的完整 url
  • body: Buffer, 指定发送的 body 内容
  • headers: Object, 指定附加的 http 头,缺省无附加头

返回结果:


get

用 GET 方法请求指定的 url,并返回结果,等同于 request("GET", ...)

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

调用参数:

  • url: String, 指定 url,必须是包含主机的完整 url
  • headers: Object, 指定附加的 http 头,缺省无附加头

返回结果:


post

用 POST 方法请求指定的 url,并返回结果,等同于 request("POST", ...)

1 2 3
static HttpResponse http.post(String url, SeekableStream body, Object headers = {}) async;

调用参数:

  • url: String, 指定 url,必须是包含主机的完整 url
  • body: SeekableStream, 指定发送的 body 内容
  • headers: Object, 指定附加的 http 头,缺省无附加头

返回结果:


用 POST 方法请求指定的 url,并返回结果,等同于 request("POST", ...)

1 2 3
static HttpResponse http.post(String url, Buffer body, Object headers = {}) async;

调用参数:

  • url: String, 指定 url,必须是包含主机的完整 url
  • body: Buffer, 指定发送的 body 内容
  • headers: Object, 指定附加的 http 头,缺省无附加头

返回结果:


用 POST 方法请求指定的 url,并返回结果,等同于 request("POST", ...)

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

调用参数:

  • url: String, 指定 url,必须是包含主机的完整 url
  • headers: Object, 指定附加的 http 头,缺省无附加头

返回结果:


del

用 DELETE 方法请求指定的 url,并返回结果,等同于 request("DELETE", ...)

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

调用参数:

  • url: String, 指定 url,必须是包含主机的完整 url
  • headers: Object, 指定附加的 http 头,缺省无附加头

返回结果:


put

用 PUT 方法请求指定的 url,并返回结果,等同于 request("PUT", ...)

1 2 3
static HttpResponse http.put(String url, SeekableStream body, Object headers = {}) async;

调用参数:

  • url: String, 指定 url,必须是包含主机的完整 url
  • body: SeekableStream, 指定发送的 body 内容
  • headers: Object, 指定附加的 http 头,缺省无附加头

返回结果:


用 PUT 方法请求指定的 url,并返回结果,等同于 request("PUT", ...)

1 2 3
static HttpResponse http.put(String url, Buffer body, Object headers = {}) async;

调用参数:

  • url: String, 指定 url,必须是包含主机的完整 url
  • body: Buffer, 指定发送的 body 内容
  • headers: Object, 指定附加的 http 头,缺省无附加头

返回结果:


用 PUT 方法请求指定的 url,并返回结果,等同于 request("PUT", ...)

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

调用参数:

  • url: String, 指定 url,必须是包含主机的完整 url
  • headers: Object, 指定附加的 http 头,缺省无附加头

返回结果:


patch

用 PATCH 方法请求指定的 url,并返回结果,等同于 request("PATCH", ...)

1 2 3
static HttpResponse http.patch(String url, SeekableStream body, Object headers = {}) async;

调用参数:

  • url: String, 指定 url,必须是包含主机的完整 url
  • body: SeekableStream, 指定发送的 body 内容
  • headers: Object, 指定附加的 http 头,缺省无附加头

返回结果:


用 PATCH 方法请求指定的 url,并返回结果,等同于 request("PATCH", ...)

1 2 3
static HttpResponse http.patch(String url, Buffer body, Object headers = {}) async;

调用参数:

  • url: String, 指定 url,必须是包含主机的完整 url
  • body: Buffer, 指定发送的 body 内容
  • headers: Object, 指定附加的 http 头,缺省无附加头

返回结果:


用 PATCH 方法请求指定的 url,并返回结果,等同于 request("PATCH", ...)

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

调用参数:

  • url: String, 指定 url,必须是包含主机的完整 url
  • headers: Object, 指定附加的 http 头,缺省无附加头

返回结果:

静态属性

cookies

List, 返回http客户端的 HttpCookie 对象列表

1
static readonly List 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;

userAgent

String, 查询和设置 http 请求中的浏览器标识

1
static String http.userAgent;

成员属性

maxBodySize

Integer, 查询和设置 body 最大尺寸,以 MB 为单位,缺省为 -1,不限制尺寸

1
Integer http.maxBodySize;