10. net

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

使用Chromium的原生網(wǎng)絡(luò)庫(kù)發(fā)出HTTP/HTTPS請(qǐng)求。

進(jìn)程:主進(jìn)程

net模塊是一個(gè)發(fā)送HTTP(S)請(qǐng)求的客戶端接口。它類似于Node.js中的HTTPHTTPS模塊,但是使用Chromium的原生網(wǎng)絡(luò)庫(kù)代替Node.js的實(shí)現(xiàn),可以提供更好的網(wǎng)絡(luò)代理。

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

  • 自動(dòng)管理系統(tǒng)代理配置,支持自動(dòng)發(fā)現(xiàn)協(xié)議和代理PAC配置文件。
  • Automatic tunneling of HTTPS requests.
  • 驗(yàn)證協(xié)議支持使用basicdigest,NTLMKerberosnegotiate的認(rèn)證方式。
  • 支持交換控制協(xié)議:Fiddler-like代理用于監(jiān)控和操作。

net模塊接口已經(jīng)特別的設(shè)計(jì)用于模仿,盡可能的接近熟悉的Node.js接口。這個(gè)接口組成包括類,方法,屬性和事件名稱都和通常使用的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()
})

順便說(shuō)一下,這個(gè)和你正常使用Node.js的HTTPHTTPS模塊幾乎完全類似。

net接口只可以在應(yīng)用分發(fā)ready事件之后使用。如果試圖在ready事件之前使用將會(huì)拋出一個(gè)錯(cuò)誤。

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

net模塊有下面的方法:

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

  • options (Object | String)類型 - ClientRequest構(gòu)造器選項(xiàng)。

返回值為ClientRequest類型

使用提供的options創(chuàng)建一個(gè)ClientRequest實(shí)例,options將會(huì)被直接轉(zhuǎn)發(fā)給ClientRequest構(gòu)造器。net.request方法將會(huì)根據(jù)在options中指定的協(xié)議方式被用來(lái)發(fā)送安全和不安全的HTTP請(qǐng)求。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,533評(píng)論 19 139
  • https://nodejs.org/api/documentation.html 工具模塊 Assert 測(cè)試 ...
    KeKeMars閱讀 6,598評(píng)論 0 6
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,872評(píng)論 25 709
  • 今天早上我來(lái)菜場(chǎng)幫忙,可是我一點(diǎn)也幫不上忙,雞鴨那邊太臟,媽媽叫我不用幫忙,另外一個(gè)小店賣(mài)干貨的,我也不知道價(jià)格,...
    蘇曉_閱讀 192評(píng)論 0 0
  • 花落水流紅,閑愁萬(wàn)種,無(wú)語(yǔ)怨東風(fēng)…… ――題記 秋風(fēng)瑟...
    木子鋒閱讀 487評(píng)論 0 1

友情鏈接更多精彩內(nèi)容