Clase: ClientRequest
Clase: ClientRequest
Hace solicitudes HTTP/HTTPS.
Process: Main, Utility
This class is not exported from the 'electron' module. Sólo está disponible como un valor de retorno de otros métodos en la API de Electron.
Peticiones del cliente implementa la interfaz de corriente de escritura y por lo tanto es un emitidor de eventos.
new ClientRequest(options)
opcions propiedades como protocolo, central, nombre de anfitrión, puerto y ruta siguen estrictamente al modo Node.js como es descrito en el módulo URL.
Por ejemplo, podemos haber creado la misma solicitud a 'github.com' como sigue:
const request = net.request({
method:'GET',
protocol:'https:',
hostname:'github.com',
port:443,
path:'/'
})
Eventos de Instancia
Evento: 'response'
Devuelve:
responseIncomingMessage - An object representing the HTTP response message.
Evento:'login'
Devuelve:
authInfoObject- Booleano
isProxy - Cadena
scheme - Cadena
host puertoÍntegro- Cadena
realm
- Booleano
callbackFunction- Cadena
username(opcional) - Cadena
password(opcional)
- Cadena
Emitido cuando un proxy de autenticación requiere las credenciales del usuario.
Se espera que la función retrollamada sea llamada de vuelta con las credenciales del usuario:
usernamecadenacontraseñacadena
request.on('login',(authInfo, callback)=>{
callback('username','password')
})
Proporcional credenciales vacías cancelará la solicitud y reportará un error de autenticación en el objeto de respuesta:
request.on('response',(response)=>{
console.log(`STATUS: ${response.statusCode}`)
response.on('error',(error)=>{
console.log(`ERROR: ${JSON.stringify(error)}`)
})
})
request.on('login',(authInfo, callback)=>{
callback()
})
Evento: "Finish"
Emitido justo antes de que el último paquete de los datos de la solicitud haya sido escrito en el objeto solicitud.
Evento: "abort"
Emitido cuando la request es abortada. El evento abort no será lanzado si la request ya está cerrada.
Evento: "error"
Devuelve:
errorError - un objeto error proporciona cierta información sobre la falla.
Emitido cuando el módulo net falla en emitir una solicitud de red. Típicamente cuando el objeto solicitud emite un evento error, un evento cerrar lo seguirá subsecuentemente y ningún objeto respuesta será proporcionado.
Evento: "close"
Emitido cuando el último evento en la transacción solicitud-respuesta HTTP. El evento cerrar indica que ningún otro evento será emitido en los objetos solicitud o respuesta.
Evento: "redirect"
Devuelve:
Estatus de códigoenteromethodstringRedirigir Urlcadena- Registro
responseHeaders<string, string[]>
Emitido cuando el servidor devuelve una respuesta redirect (por ejemplo 301 Moved Permanently). Llamar a request.followRedirect continuará con la redirección. Si este evento es manejado, request.followRedirect debe ser llamado synchronously, de otra manera la solicitud será cancelada.
Propiedades de la instancia
request.chunkedEncoding
A boolean specifying whether the request will use HTTP chunked transfer encoding or not. Por defecto es falso. La propiedad es de lectura y escritura, sin embargo puede ser configurada antes de la primera operación de escritura debido a que el encabezado HTTP no se ha puesto en el hilo. Tratar de configurar la propiedad codificación empaquetada después de la primera escritura arrojará un error.
Utilizar codificación empaquetada es fuertemente recomendado si no necesita enviar una solicitud grande dado que lo datos serán transmitidos en paquetes pequeños en lugar de ser cargados internamente en la memoria de proceso de Electron.
Métodos de Instancia
request.setHeader(name, value)
nombrecadena - Un nombre de encabezado HTTP extra.valuestring - Un valor de cabecera HTTP extra.
Añade otro encabezado HTTP. El nombre de la cabecera se emitirá tal cual sin convertirlas a minúscula. Será llamado solo antes de la primera escritura. Llamar a este método despues de la primera escritura arrojará un error. If the passed value is not a string, its toString() method will be called to obtain the final value.
Ciertos encabezados están restringidos de ser definidos por aplicaciones. Estos encabezados se enlistan a continuación. Más información sobre encabezados restringidos puede ser encontrada en Chromium's header utils.
Content-LengthHostTrailerorTeUpgradeCookie2Keep-AliveTransfer-Encoding
Además, definir el encabezado Connection al valor upgrade también está dehabilitado.
request.getHeader(name)
nombrecadena - Especifica el nombre del encabezado extra.
Devuelve string - El valor de un nombre de cabecera extra establecido anteriormente.
request.removeHeader(name)
nombrecadena - Especifica el nombre del encabezado extra.
Elimina un nombre de cabecera establecido previamente. This method can be called only before first write. Trying to call it after the first write will throw an error.
request.write(chunk[, encoding][, callback])
chunk(string | Buffer) - A chunk of the request body's data. If it is a string, it is converted into a Buffer using the specified encoding.encodingstring (optional) - Used to convert string chunks into Buffer objects. Defaults to 'utf-8'.retrollamadafunción (opcional) - Llamado cuando se haya realizado la operación de escritura.
La retrollamada es esencialmente una función sencilla introducida con el propósito de mantener similitudes con el API Node.js. Es llamada asincrónicamente en el siguiente tick después de que el contenido del paquete haya sido entregado a la capa de red de Chromium. A diferencia de la implementación de Node.js, no está garantizado que el contenido del paquete haya sido entregado en el hilo antes de que sea llamada retrollamada.
Agrega un paquete de datos al cuerpo de la solicitud. La primera operación de escritura pudiese causar que el encabezado de la solicitud sea cambiado en el hilo. Después de la primera operación de escritura, no está permitido el añadir o remover un encabezado personalizado.
request.end([chunk][, encoding][, callback])
paquete(cadena | Almacenamiento) (opcional)codificacióncadena (opcional)retrocallbackFuncion (opcional)
Devuelve this.
Sends the last chunk of the request data. Subsequent write or end operations will not be allowed. The finish event is emitted just after the end operation.
request.abort()
Cancela una transacción HTTP en proceso. Si la solicitud ya emitió el evento de cerrar, la operación abortar no tendrá ningún efecto. De otra manera un evento en proceso emitirá los eventos abortar y cerrar. Adicionalmente, si hay algún objeto de respuesta activo, será emitido el evento abortado.
request.followRedirect()
Continues any pending redirection. Can only be called during a 'redirect' event.
request.getUploadProgress()
Devuelve Objecto:
activeboolean - Whether the request is currently active. If this is false no other properties will be setstartedboolean - Whether the upload has started. If this is false bothcurrentandtotalwill be set to 0.currentInteger - El número de bytes que se han subido hasta ahoratotalInteger - El número de bytes que ha subido esta solicitud
Puedes usar este método en conjunto con solicitudes POST para obtener el progreso de la carga de un archivo u otro dato de transferencia.