10. net

作者: Shmily落墨 | 来源:发表于2017-03-07 11:13 被阅读184次

    原文: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请求。

    相关文章

      网友评论

        本文标题:10. net

        本文链接:https://www.haomeiwen.com/subject/anxmgttx.html