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:
response
IncomingMessage - An object representing the HTTP response message.
Evento:'login'
Devuelve:
authInfo
ObjectisProxy
booleanscheme
stringhost
stringpuerto
Íntegrorealm
string
callback
Functionusername
string (optional)password
string (optional)
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:
username
cadenacontraseña
cadena
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:
error
Error - 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ódigo
enteromethod
stringRedirigir Url
cadena- 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)
nombre
cadena - Un nombre de encabezado HTTP extra.value
string - 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-Length
Host
Trailer
orTe
Upgrade
Cookie2
Keep-Alive
Transfer-Encoding
Además, definir el encabezado Connection
al valor upgrade
también está dehabilitado.
request.getHeader(name)
nombre
cadena - Especifica el nombre del encabezado extra.
Devuelve string
- El valor de un nombre de cabecera extra establecido anteriormente.
request.removeHeader(name)
nombre
cadena - 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.encoding
string (optional) - Used to convert string chunks into Buffer objects. Defaults to 'utf-8'.retrollamada
funció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ón
cadena (opcional)retrocallback
Funcion (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 Objeto
:
active
boolean - Whether the request is currently active. If this is false no other properties will be setstarted
boolean - Whether the upload has started. If this is false bothcurrent
andtotal
will be set to 0.current
Integer - El número de bytes que se han subido hasta ahoratotal
Integer - 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.