客户端请求
客户端的HTTP/HTTPS请求。
进程:主进程
ClientRequest是由EventEmitter来实现Writable Stream
new ClientRequest(options)
new ClientRequest(options)作用:发起新的HTTP/HTTPS请求
options(Object | String) -options是String时即请求URL。options是Object时则按以下属性请求:methodString(可选) - HTTP请求方法。默认为GET。urlString(可选) - 请求URL。协议为http或https。sessionObject(可选) -Session与请求相关联。session优先于partition。partitionString(可选) - [partition]的名称partition与请求相关联。默认为空字符串。如果session是显式的指定,partition被忽略。protocolString(可选) -scheme:形式的协议方案。可选http:或https:。默认为http:。hostString(可选) - 作为连接提供的服务器主机,主机名和端口号hostname:porthostnameString(可选) - 服务器主机名。portInteger(可选) - 服务器的侦听端口号。pathString(可选) - 请求URL的路径部分。redirectString(可选) - 请求的重定向模式。可选值follow(跟随) ,error(错误)或manual(手动),默认为follow。error表示任何重定向将被中止。manual表示延迟重定向直到调用了request.followRedirect。有关重定向请求的更多细节请查看redirect事件。
options属性,如 protocol, host, hostname, port和 path严格遵循Node.js模型,如URL模块。
例如,我们可以创建与github.com相同的请求如下:
实例事件
事件:'response'
触发:HTTP响应消息对象时
response(IncomingMessage)
事件:'login'
触发:认证代理请求用户凭据时
authInfo对象isProxyBooleanschemeStringhostStringportIntegerrealmString
callbackFunction 发起凭据并用callback回调usernameStringpasswordString
提供空凭证将取消请求并在响应对象上报告认证错误:
事件:'finish'
触发:请求完成时
事件:'abort'
触发:请求中止时
如果 request已经关闭, abort事件不会被触发。
事件:'error'
触发:请求错误时
errorError - 包含失败原因的一个对象。
net模块无法发出网络请求时触发。通常在 request对象发出一个 error事件,一个 close事件随后 跟随并且不提供响应对象。
事件:'close'
触发:请求关闭时
作为HTTP请求 - 响应事务中的最后一个事件。 close事件表示不再发出 request或者response对象。
事件: 'redirect'
触发:发起模式为
manual(手动)的重定向时
statusCodeInteger
methodString
redirectUrlString
responseHeadersObject
使用request.followRedirect可继续重定向.
实例属性
request.chunkedEncoding
request.chunkedEncoding指定请求是否将使用HTTP分块传输编码的布尔值。默认为 false
该属性是可读写的,但它可以只在第一次写操作之前设置,在第一次写入后设置 chunkedEncoding属性后会抛出一个错误。
如果请求较大且复杂时,使用分块可有效提高效率.因为数据将以小块形式流传输,而不是在Electron进程内存中内部缓冲。
实例方法
request.setHeader(name,value)
request.setHeader(name,value)用途:设置HTTP头
nameString - 额外的HTTP头名称。valueString - 额外的HTTP头值。
必须注意的是,它只能在第一次写入前调用。在第一次写入后调用此方法将抛出一个错误。
request.getHeader(name)
request.getHeader(name)用途:获取HTTP头
nameString - 指定的额外标题名称。返回String - 以前设置的额外头名称的值。
request.removeHeader(name)
request.removeHeader(name)用途:删除先前设置的HTTP头
nameString - 指定的额外标题名称。
必须注意的是,它只能在第一次写入前调用。在第一次写入后调用此方法将抛出一个错误。
request.write(chunk [,encoding] [,callback])
request.write(chunk [,encoding] [,callback])用途:写入新的请求并等待响应
chunk(String | Buffer) - 请求主体数据的一个块。如果是字符串,它将使用指定的编码转换为Buffer。encodingString(可选) - 用于将字符串块转换为Buffer对象。默认为utf-8。callbackFunction(可选) - 在写操作结束后调用。callback本质上是为了保持与Node.js API的相似性而引入的虚拟函数。
在chunk的内容传递到Chromium网络层后,在下一个tick中被异步调用。与Node.js实现相反,不能保证 chunk内容在调用 callback之前已经被刷新了块内容.
向请求正文中添加一个数据块。
第一次写操作可能导致在线路上发出请求头。
第一次写操作后,不允许添加或删除自定义标题。
request.end([chunk] [,encoding] [,callback])
request.end([chunk] [,encoding] [,callback])用途:发送请求数据的最后一个块。将不允许后续写入或结束操作
chunk(String | Buffer)(可选)encodingString(可选)callback函数(可选)finish事件是在结束操作之后发出的。
request.abort()
request.abort()用途:取消正在进行的HTTP事务
如果请求已经发出了 close事件,中止操作将无效。否则正在进行的事件将触发 abort和 close事件。
另外,如果有正在进行的响应对象,它将发出 aborted事件。
request.followRedirect()
request.followRedirect()用途:重定向模式为
manual(手动)时,继续延迟重定向请求
Last updated
Was this helpful?