HttpResponse抽象 接口

HTTP 响应,用于将服务器返回的头部和数据发送到客户端,以响应 HTTP 请求。

每个 HttpRequest 对象都通过 response 属性提供对其相关 HttpResponse 对象的访问。服务器通过写入 HttpResponse 对象将响应发送到客户端。

写入响应

此类实现了 IOSink。设置头部后,可以使用源自 IOSink 的方法(如 writeln())来写入 HTTP 响应的主体。使用 close() 方法关闭响应并发送到客户端。

server.listen((HttpRequest request) {
  request.response.write('Hello, world!');
  request.response.close();
});

首次使用 IOSink 方法时,会发送请求头部。在发送后调用任何更改头部的方 法会抛出异常。

设置头部

HttpResponse 对象包含一些用于设置响应 HTTP 头部的属性。当通过 IOSink 写入字符串数据时,使用的编码由 "Content-Type" 头部的 "charset" 参数确定。

HttpResponse response = ...
response.headers.contentType
    = ContentType("application", "json", charset: "utf-8");
response.write(...);  // Strings written will be UTF-8 encoded.

如果没有提供字符集,将使用默认值 ISO-8859-1(拉丁 1)。

HttpResponse response = ...
response.headers.add(HttpHeaders.contentTypeHeader, "text/plain");
response.write(...);  // Strings written will be ISO-8859-1 encoded.

如果设置了不支持的 contentType,将抛出异常。

实现类型

构造函数

HttpResponse()

属性

bufferOutput bool
获取或设置是否应对 HttpResponse 缓冲输出。
getter/setter 对
connectionInfo HttpConnectionInfo?
获取客户端连接信息。如果套接字不可用,则返回 null
没有设置器
contentLength int
获取和设置响应的内容长度。如果无法预先知道响应的大小,请将内容长度设置为 -1,如果未设置,则为默认值。
getter/setter 对
cookies List<Cookie>
设置要在客户端(在 'set-cookie' 头部)中设置的 Cookie。
没有设置器
deadline Duration?
设置和获取响应的 deadline。从设置的时间开始计时。设置新的 deadline 将覆盖任何以前的 deadline。当 deadline 被超过时,响应将被关闭,并将忽略任何后续数据。
getter/setter 对
done Future
当消费者关闭或发生错误时将要完成的 Future。
没有设置器继承
encoding Encoding
写入字符串时使用的 Encoding
getter/setter 对继承
hashCode int
此对象的哈希码。
没有设置器继承
headers HttpHeaders
返回响应头。
没有设置器
persistentConnection bool
获取并设置持久连接状态。该属性的初始值是请求的持久连接状态。
getter/setter 对
reasonPhrase String
响应的原因短语。
getter/setter 对
runtimeType Type
对象运行时类型的表示。
没有设置器继承
statusCode int
响应的状态码。
getter/setter 对

方法

add(List<int> data) → void
将字节数据 data 添加到目标消费者,忽略 编码
继承
addError(Object error, [StackTrace? stackTrace]) → void
将错误传递为目标消费者的错误事件。
继承
addStream(Stream<List<int>> stream) Future
添加给定 stream 的所有元素。
继承
close() Future
关闭目标消费者。
继承
detachSocket({bool writeHeaders = true}) Future<Socket>
从 HTTP 服务器中分离底层套接字。当套接字分离后,HTTP 服务器将不再对其执行任何操作。
flush() Future
返回一个 Future,当底层 StreamConsumer 接受所有缓冲数据时完成。
继承
noSuchMethod(Invocation invocation) → dynamic
当访问不存在的方法或属性时调用。
继承
redirect(Uri location, {int status = HttpStatus.movedTemporarily}) Future
响应重定向到 location
toString() String
此对象的字符串表示形式。
继承
write(Object? object) → void
通过调用 Object.toStringobject 转换为 String,并将结果编码添加到目标消费者。
继承
writeAll(Iterable objects, [String separator = ""]) → void
遍历提供的 objects 并按顺序写入。
继承
writeCharCode(int charCode) → void
写入 charCode 的字符。
继承
writeln([Object? object = ""]) → void
通过调用 Object.toStringobject 转换为 String,并将结果写入到 this 后跟一个换行符。
继承

运算符

operator ==(Object other) bool
等号运算符。
继承