10. net

原文:https://github.com/electron/electron/blob/master/docs/api/net.md
译者:Lin

使用Chromium的原生网络库发出HTTP/HTTPS请求。

进程:主进程

net模块是一个发送HTTP(S)请求的客户端接口。它类似于Node.js中的HTTPHTTPS模块,但是使用Chromium的原生网络库代替Node.js的实现,可以提供更好的网络代理。

下面是为什么你可以使用net模块代替本地Node.js模块的不完全的理由的列表:

  • 自动管理系统代理配置,支持自动发现协议和代理PAC配置文件。
  • Automatic tunneling of HTTPS requests.
  • 验证协议支持使用basicdigestNTLMKerberosnegotiate的认证方式。
  • 支持交换控制协议:Fiddler-like代理用于监控和操作。

net模块接口已经特别的设计用于模仿,尽可能的接近熟悉的Node.js接口。这个接口组成包括类,方法,属性和事件名称都和通常使用的Node.js接口相似。

例如,下面的例子快速展示了net接口如何被使用:

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的HTTPHTTPS模块几乎完全类似。

net接口只可以在应用分发ready事件之后使用。如果试图在ready事件之前使用将会抛出一个错误。

<h2 id="methods">Methods</h2>

net模块有下面的方法:

<h3 id="net-request"><code>net.request(options)</code></h3>

  • options (Object | String)类型 - ClientRequest构造器选项。

返回值为ClientRequest类型

使用提供的options创建一个ClientRequest实例,options将会被直接转发给ClientRequest构造器。net.request方法将会根据在options中指定的协议方式被用来发送安全和不安全的HTTP请求。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,534评论 19 139
  • https://nodejs.org/api/documentation.html 工具模块 Assert 测试 ...
    KeKeMars阅读 11,513评论 0 6
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,724评论 25 709
  • 今天早上我来菜场帮忙,可是我一点也帮不上忙,鸡鸭那边太脏,妈妈叫我不用帮忙,另外一个小店卖干货的,我也不知道价格,...
    苏晓_阅读 968评论 0 0
  • 花落水流红,闲愁万种,无语怨东风…… ――题记 秋风瑟...
    木子锋阅读 3,134评论 0 1