Object 内置对象

对象 HttpResponse

HttpResponse 是一个 HTTP 响应对象,使用 HttpRequest.response 对象完成 Http 服务端数据响应,或 http.request 请求返回服务器的响应数据

以下的例子展示如何在 http.Server 中使用,示例代码如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
const http = require('http'); const server = new http.Server(8080, (request) => { // retreive the response object const response = request.response; // set the status code response.statusCode = 200; // set the content type to text/plain response.setHeader('Content-Type', 'text/plain'); // write the response body response.write('ok'); }); server.start();

继承关系

构造函数

HttpResponse

HttpResponse 构造函数,创建一个新的 HttpResponse 对象

1
new HttpResponse();

常量

TEXT

指定消息类型 1,代表一个文本类型

1
const HttpResponse.TEXT = 1;

BINARY

指定消息类型 2,代表一个二进制类型

1
const HttpResponse.BINARY = 2;

成员属性

statusCode

Integer, 查询和设置响应消息的返回状态

1
Integer HttpResponse.statusCode;

statusMessage

String, 查询和设置响应消息的返回消息

1
String HttpResponse.statusMessage;

status

Integer, 查询和设置响应消息的返回状态,等同于 statusCode

1
Integer HttpResponse.status;

ok

Boolean, 查询当前响应是否正常

1
readonly Boolean HttpResponse.ok;

cookies

NArray, 返回当前消息的 HttpCookie 对象列表

1
readonly NArray HttpResponse.cookies;

protocol

String, 协议版本信息,允许的格式为:HTTP/#.#

1
String HttpResponse.protocol;

headers

HttpCollection, 包含消息中 http 消息头的容器,只读属性

1
readonly HttpCollection HttpResponse.headers;

keepAlive

Boolean, 查询和设定是否保持连接

1
Boolean HttpResponse.keepAlive;

upgrade

Boolean, 查询和设定是否是升级协议

1
Boolean HttpResponse.upgrade;

maxHeadersCount

Integer, 查询和设置最大请求头个数,缺省为 128

1
Integer HttpResponse.maxHeadersCount;

maxHeaderSize

Integer, 查询和设置最大请求头长度,缺省为 8192

1
Integer HttpResponse.maxHeaderSize;

maxBodySize

Integer, 查询和设置 body 最大尺寸,以 MB 为单位,缺省为 64

1
Integer HttpResponse.maxBodySize;

socket

Stream, 查询当前对象的来源 socket

1
readonly Stream HttpResponse.socket;

value

String, 消息的基本内容

1
String HttpResponse.value;

params

NArray, 消息的基本参数

1
readonly NArray HttpResponse.params;

type

Integer, 消息类型

1
Integer HttpResponse.type;

data

Value, 查询消息的数据,此属性会根据 content-type 返回不同数据,为 text 时,返回文本,为 json 时返回 json,其它时候返回二进制

1
readonly Value HttpResponse.data;

body

SeekableStream, 包含消息数据部分的流对象

1
SeekableStream HttpResponse.body;

length

Long, 消息数据部分的长度

1
readonly Long HttpResponse.length;

stream

Stream, 查询消息 readFrom 时的流对象

1
readonly Stream HttpResponse.stream;

lastError

String, 查询和设置消息处理的最后错误

1
String HttpResponse.lastError;

成员函数

writeHead

设置响应消息的返回状态,返回消息,并添加响应头

1 2 3
HttpResponse.writeHead(Integer statusCode, String statusMessage, Object headers = {});

调用参数:

  • statusCode: Integer, 指定响应消息的返回状态
  • statusMessage: String, 指定响应消息的返回消息
  • headers: Object, 指定响应消息添加的响应头

设置响应消息的返回状态,返回消息,并添加响应头

1 2
HttpResponse.writeHead(Integer statusCode, Object headers = {});

调用参数:

  • statusCode: Integer, 指定响应消息的返回状态
  • headers: Object, 指定响应消息添加的响应头

addCookie

向 cookies 添加一个 HttpCookie 对象

1
HttpResponse.addCookie(HttpCookie cookie);

调用参数:


redirect

发送重定向到客户端

1
HttpResponse.redirect(String url);

调用参数:

  • url: String, 重定向的地址

发送重定向到客户端

1 2
HttpResponse.redirect(Integer statusCode, String url);

调用参数:

  • statusCode: Integer, 指定响应消息的返回状态,接受的状态为:301, 302, 307
  • url: String, 重定向的地址

sendHeader

仅发送格式化 http 头到给定的流对象

1
HttpResponse.sendHeader(Stream stm) async;

调用参数:

  • stm: Stream, 指定接收格式化消息的流对象

hasHeader

检查是否存在指定键值的消息头

1
Boolean HttpResponse.hasHeader(String name);

调用参数:

  • name: String, 指定要检查的键值

返回结果:

  • Boolean, 返回键值是否存在

firstHeader

查询指定键值的第一个消息头

1
String HttpResponse.firstHeader(String name);

调用参数:

  • name: String, 指定要查询的键值

返回结果:

  • String, 返回键值所对应的值,若不存在,则返回 undefined

allHeader

查询指定键值的全部消息头

1
NObject HttpResponse.allHeader(String name = "");

调用参数:

  • name: String, 指定要查询的键值,传递空字符串返回全部键值的结果

返回结果:

  • NObject, 返回键值所对应全部值的数组,若数据不存在,则返回 null

addHeader

添加一个消息头,添加数据并不修改已存在的键值的消息头

1
HttpResponse.addHeader(Object map);

调用参数:

  • map: Object, 指定要添加的键值数据字典

添加指定名称的一组消息头,添加数据并不修改已存在的键值的消息头

1 2
HttpResponse.addHeader(String name, Array values);

调用参数:

  • name: String, 指定要添加的键值
  • values: Array, 指定要添加的一组数据

添加一个消息头,添加数据并不修改已存在的键值的消息头

1 2
HttpResponse.addHeader(String name, String value);

调用参数:

  • name: String, 指定要添加的键值
  • value: String, 指定要添加的数据

setHeader

设定一个消息头,设定数据将修改键值所对应的第一个数值,并清除相同键值的其余消息头

1
HttpResponse.setHeader(Object map);

调用参数:

  • map: Object, 指定要设定的键值数据字典

设定指定名称的一组消息头,设定数据将修改键值所对应的数值,并清除相同键值的其余消息头

1 2
HttpResponse.setHeader(String name, Array values);

调用参数:

  • name: String, 指定要设定的键值
  • values: Array, 指定要设定的一组数据

设定一个消息头,设定数据将修改键值所对应的第一个数值,并清除相同键值的其余消息头

1 2
HttpResponse.setHeader(String name, String value);

调用参数:

  • name: String, 指定要设定的键值
  • value: String, 指定要设定的数据

removeHeader

删除指定键值的全部消息头

1
HttpResponse.removeHeader(String name);

调用参数:

  • name: String, 指定要删除的键值

read

从流内读取指定大小的数据,此方法为 body 相应方法的别名

1
Buffer HttpResponse.read(Integer bytes = -1) async;

调用参数:

  • bytes: Integer, 指定要读取的数据量,缺省为读取随机大小的数据块,读出的数据尺寸取决于设备

返回结果:

  • Buffer, 返回从流内读取的数据,若无数据可读,或者连接中断,则返回 null

readAll

从流内读取剩余的全部数据,此方法为 body 相应方法的别名

1
Buffer HttpResponse.readAll() async;

返回结果:

  • Buffer, 返回从流内读取的数据,若无数据可读,或者连接中断,则返回 null

write

写入给定的数据,此方法为 body 相应方法的别名

1
HttpResponse.write(Buffer data) async;

调用参数:

  • data: Buffer, 给定要写入的数据

json

以 JSON 编码写入给定的数据

1
Value HttpResponse.json(Value data);

调用参数:

  • data: Value, 给定要写入的数据

返回结果:

  • Value, 此方法不会返回数据

以 JSON 编码解析消息中的数据

1
Value HttpResponse.json();

返回结果:

  • Value, 返回解析的结果

pack

msgpack 编码写入给定的数据

1
Value HttpResponse.pack(Value data);

调用参数:

  • data: Value, 给定要写入的数据

返回结果:

  • Value, 此方法不会返回数据

msgpack 编码解析消息中的数据

1
Value HttpResponse.pack();

返回结果:

  • Value, 返回解析的结果

end

设置当前消息处理结束,Chain 处理器不再继续后面的事务

1
HttpResponse.end();

isEnded

查询当前消息是否结束

1
Boolean HttpResponse.isEnded();

返回结果:

  • Boolean, 结束则返回 true

clear

清除消息的内容

1
HttpResponse.clear();

sendTo

发送格式化消息到给定的流对象

1
HttpResponse.sendTo(Stream stm) async;

调用参数:

  • stm: Stream, 指定接收格式化消息的流对象

readFrom

从给定的缓存流对象中读取格式化消息,并解析填充对象

1
HttpResponse.readFrom(Stream stm) async;

调用参数:

  • stm: Stream, 指定读取格式化消息的流对象

toString

返回对象的字符串表示,一般返回 "[Native Object]",对象可以根据自己的特性重新实现

1
String HttpResponse.toString();

返回结果:

  • String, 返回对象的字符串表示

toJSON

返回对象的 JSON 格式表示,一般返回对象定义的可读属性集合

1
Value HttpResponse.toJSON(String key = "");

调用参数:

  • key: String, 未使用

返回结果:

  • Value, 返回包含可 JSON 序列化的值