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.

如果没有提供 charset,将使用默认的 ISO-8859-1(拉丁 1)。

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

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

实现类型

属性

bufferOutput bool
获取或设置 HttpResponse 是否应该缓冲输出。
getter/setter 对
connectionInfo HttpConnectionInfo?
获取客户端连接的信息。如果套接字不可用,则返回 null
无 setter
contentLength int
获取和设置响应的内容长度。如果事先不知道响应的大小,将内容长度设置为 -1,这也是未设置时的默认值。
getter/setter 对
cookies List<Cookie>
设置在客户端(在 'set-cookie' 头部)中设置的 Cookie。
无 setter
deadline Duration?
设置和获取响应的 deadline。从设置的时间开始计时。设置新的 deadline 将覆盖任何以前的 deadline。当超出 deadline 时,响应将被关闭,并且任何进一步的数据都将被忽略。
getter/setter 对
done Future
当消费者关闭或发生错误时完成的未来。
无setter继承
编码 编码
写入字符串时使用的编码。
getter/setter 对继承
hashCode int
此对象的哈希码。
无setter继承
headers HttpHeaders
返回响应头。
无 setter
persistentConnection bool
获取和设置持久连接状态。此属性的初始值是从请求中获取的持久连接状态。
getter/setter 对
reasonPhrase String
响应的理由短语。
getter/setter 对
runtimeType Type
对象的运行时类型的表示。
无setter继承
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接受,该Future将完成。
继承
noSuchMethod(Invocation invocation) → dynamic
当访问不存在的方法或属性时被调用。
继承
redirect(Uri location, {int status = HttpStatus.movedTemporarily}) Future
以重定向到location响应。
toString() String
此对象的字符串表示形式。
继承
write(Object? object) → void
通过调用Object.toStringobject转换为String,并通过add将结果的编码添加到目标消费者。
继承
writeAll(Iterable objects, [String separator = ""]) → void
遍历给定的objects并将它们按顺序写入。
继承
writeCharCode(int charCode) → void
写入charCode的字符。
继承
writeln([Object? object = ""]) → void
通过调用Object.toStringobject转换为String,然后将结果写入this,后面跟一个换行符。
继承

操作符

operator ==(Object other) bool
相等操作符。
继承