Chromium 原生网络库

优质
小牛编辑
132浏览
2023-12-01

使用Chromium原生网络库发起HTTP/HTTPS请求

进程: 主进程
net 模块是用于发出 HTTP(S) 请求问题的客户端 API。
它类似于Node.js的HTTPHTTPS模块,但是它基于Chromium 的原生API 而非Node.js ,相对而言更适合处理 web 端的请求。
关于为什么使用 net 模块 而非Node.js,这里有个简要的原因列表:

  • 自动管理系统代理设置,支持 wpad 协议和 pac 代理配置文件。

  • 自动使用隧道通过 HTTPS 请求。

  • 支持 basic, digest, NTLM, Kerberos 或 negotiate 等认证方案的身份验证代理。

  • 支持流量监控代理: 用于访问控制和监控的Fiddler类代理。

net 模块的 API 在设计上特别的模仿了 Node.js 的 API 从而达到比较接近的体验。也就是说,它非常相似 Node.js 的 HTTP/HTTPS 模块。
如何使用 net API的小例子:
1
const {app} = require('electron')
2
app.on('ready', () => {
3
const {net} = require('electron')
4
const request = net.request('https://github.com')
5
request.on('response', (response) => {
6
console.log(`状态: ${response.statusCode}`)
7
console.log(`文件头: ${JSON.stringify(response.headers)}`)
8
response.on('data', (chunk) => {
9
console.log(`正文: ${chunk}`)
10
})
11
response.on('end', () => {
12
console.log('没有更多的数据响应.')
13
})
14
})
15
request.end()
16
})
Copied!

net API 必须在 ready 事件后使用。否则会抛出一个错误。

方法

net.request(options)

用途:*根据 options对象中指定的协议方案发出安全和不安全的HTTP请求( ClientRequest)

  • options (Object | String) - ClientRequest 的构造参数,使用提供的 options 创建一个ClientRequest实例。