net
net
使用 Chromium 的本地网络库发出 HTTP / HTTPS 请求
程序:主
该net
模块是用于发布HTTP(S)请求的客户端API。它类似于Node.js 的HTTP和HTTPS模块,但使用Chromium的本地网络库而不是Node.js实现,从而更好地支持Web代理。
以下是您为什么可以考虑使用net
模块而非本地Node.js模块的非详尽列表:
- 自动管理系统代理配置,支持wpad协议和代理pac配置文件。
- 自动隧道化HTTPS请求。
- 支持使用基本,摘要,NTLM,Kerberos或协商身份验证方案对代理进行身份验证。
- 支持流量监控代理:用于访问控制和监控的Fiddler-like代理。
该net
模块API已经被专门用来模仿,尽可能接近,熟悉Node.js的API。包括类,方法,属性和事件名称的API组件类似于Node.js中常用的API组件。
例如,以下示例快速显示如何使用net
API:
const {app} = require('electron')
app.on('ready', () => {
const {net} = require('electron')
const request = net.request('https://github.com')
request.on('response', (response) => {
console.log(`STATUS: ${response.statusCode}`)
console.log(`HEADERS: ${JSON.stringify(response.headers)}`)
response.on('data', (chunk) => {
console.log(`BODY: ${chunk}`)
})
response.on('end', () => {
console.log('No more data in response.')
})
})
request.end()
})
顺便说一下,它与您通常使用Node.js 的HTTP / HTTPS模块的方式几乎完全相同
该net
API可以在应用程序发出后才能使用ready
事件。试图在ready
事件发生之前使用模块会导致错误。
方法
该net
模块具有以下方法:
net.request(options)
options
(Object | String) -ClientRequest
构造函数选项。
返回 ClientRequest
ClientRequest
使用提供options
的直接转发给ClientRequest
构造函数的实例创建一个实例。该net.request
方法将用于根据options
对象中指定的协议方案发出安全和不安全的HTTP请求。