当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Dart HttpResponse用法及代码示例


dart:io 库中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 (Latin 1)。

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

如果在设置不受支持的 content-type 时使用 write() 方法,则会引发异常。

实现的类型

IOSink

相关用法


注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 HttpResponse class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。