Issue HTTP/HTTPS requests using Chromium’s native networking library
Process: Main
The net
module is a client-side API for issuing HTTP(S) requests. It is similar to the HTTP and HTTPS modules of Node.js but uses Chromium’s native networking library instead of the Node.js implementation, offering better support for web proxies.
The following is a non-exhaustive list of why you may consider using the net
module instead of the native Node.js modules:
The net
module API has been specifically designed to mimic, as closely as possible, the familiar Node.js API. The API components including classes, methods, properties and event names are similar to those commonly used in Node.js.
For instance, the following example quickly shows how the net
API might be used:
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()
})
By the way, it is almost identical to how you would normally use the HTTP/HTTPS modules of Node.js
The net
API can be used only after the application emits the ready
event. Trying to use the module before the ready
event will throw an error.
The net
module has the following methods:
net.request(options)
options
(Object | String) - The ClientRequest
constructor options.Returns ClientRequest
Creates a ClientRequest
instance using the provided options
which are directly forwarded to the ClientRequest
constructor. The net.request
method would be used to issue both secure and insecure HTTP requests according to the specified protocol scheme in the options
object.