Classe : ClientRequest
Classe : ClientRequest
Faire des requêtes HTTP/HTTPS.
Processus : Main, Utility
Cette classe n’est pas exportée à partir du module 'electron'
. Elle n'est disponible qu'en tant que valeur de retour des autres méthodes dans l'API Electron.
ClientRequest
implémente l'interface de Writable Stream et, du coup, elle est un EventEmitter.
new ClientRequest(options)
options
propriétés telles que protocole
, host
, hostname
, port
et path
suivent strictement le modèle Node.js comme décrit dans le module URL.
Par exemple, nous aurions pu créer la même requête à 'github.com' comme suit:
const request = net.request({
method: 'GET',
protocol: 'https:',
hostname: 'github.com',
port: 443,
path: '/'
})
Événements d’instance
Événement : 'response'
Retourne :
response
IncomingMessage - Un objet représentant le message de réponse HTTP.
Événement : 'login'
Retourne :
- Objet
authInfo
isProxy
booleanscheme
stringhost
stringport
Integerrealm
string
callback
Functionusername
string (facultatif)password
string (facultatif)
Émis lorsqu'un proxy d'authentification demande les identifiants de l'utilisateur.
La fonction callback
est censée être rappelée avec les identifiants de l'utilisateur :
username
stringpassword
string
request.on('login', (authInfo, callback) => {
callback('username', 'password')
})
Fournir des identifiants vides annulera la demande et signalera une erreur d'authentification sur l'objet de réponse :
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()
})
Événement : 'finish'
Émis juste après le dernier chunk de l'objet request
a été écrit dans l'objet request
.
Événement : 'abort'
Émis lorsque la request
est clôturée. L'événement abort
ne sera pas déclenché si la request
est déjà clôturée.
Événement : 'error'
Retourne :
error
Erreur - un objet d'erreur fournissant des informations sur l'échec.
Émis lorsque le module net
ne parvient pas à émettre une requête réseau. Généralement lorsque l'objet request
émet un événement error
, un événement close
sera ensuite suivi et aucun objet de réponse ne sera fourni.
Événement : 'close'
Émis en tant que dernier événement dans la transaction de réponse de requête HTTP. L'événement close
indique qu'aucun événement ne sera émis sur les objets request
ou response
.
Événement : 'redirect'
Retourne :
statusCode
Integermethod
stringredirectUrl
string- Enregistrement
responseHeaders
<string, string[]>
Émis lorsque le serveur renvoie une réponse de redirection (par exemple 301 Déplacé de manière permanente). Appeler request.followRedirect
va continuer avec la redirection. Si cet événement est géré, request.followRedirect
doit être appelé synchrones, sinon la requête sera annulée.
Propriétés d'instance
request.chunkedEncoding
boolean
spécifie si la requête utilisera l'encodage de transfert HTTP chunked 'permettant le trasfert par bloc) ou non. false par défaut. La propriété est lisible et en écriture, Cependant, il ne peut être défini que avant la première opération d'écriture car les en-têtes HTTP ne sont pas encore mis sur le fil. Tenter de définir la propriété chunkedEncoding
après la première écriture lancera une erreur.
L'utilisation de l'encodage chunked est fortement recommandée si vous avez besoin d'envoyer un grand corps de requête car les données seront diffusées en petits morceaux au lieu d'être en mémoire tampon interne dans la mémoire de processus d'Electron.
Méthodes d’instance
request.setHeader(name, value)
name
string - Un nom d'en-tête HTTP supplémentaire.valeur
string - Une valeur d'en-tête HTTP supplémentaire.
Ajoute un en-tête HTTP supplémentaire. Le nom de l'en-tête sera publié tel quel sans minuscules. Il peut être appelé seulement avant d'écrire en premier. Appeler cette méthode après la première écriture lancera une erreur. Si la valeur passée n'est pas une string
, sa méthode toString()
sera appelée pour obtenir la valeur finale.
Certains en-têtes ne peuvent pas être définis par les applications. Ces en-têtes sont répertoriés ci-dessous. Vous trouverez plus d’informations sur les en-têtes restreints dans Chromium's header utils.
Content-Length
Host
Trailer
orTe
Upgrade
Cookie2
Keep-Alive
Transfer-Encoding
De plus, la définition de l'en-tête Connection
à la valeur upgrade
est également interdite.
request.getHeader(name)
name
chaîne - Spécifie un nom d'en-tête supplémentaire.
Retourne string
- La valeur d'un nom d'en-tête supplémentaire précédemment défini.
request.removeHeader(name)
name
chaîne - Spécifie un nom d'en-tête supplémentaire.
Supprime un nom d’en-tête supplémentaire précédemment défini. Cette méthode ne peut être appelée qu’avant la première écriture. Toute tentative d'’appel après la première écriture générera une erreur.
request.write(chunk[, encoding][, callback])
chunk
(string | Buffer) - Fragment de données du corps de la requête. S'il s'agit d'une string , elle est convertie en Buffer en utilisant l'encodage spécifié.encoding
string (facultatif) - Utilisé pour convertir des fragments de chaîne en objets Buffer. La valeur par défaut est 'utf-8'.callback
Fonction (facultatif) - Appelée après la fin de l'opération d'écriture.
callback
est essentiellement une fonction factice introduite dans le but de conserver la similarité avec l'API Node.js. Il est appelé de manière asynchrone dans le prochain tick après que le contenu chunk
ait été livré à la couche de réseau Chromium. Contrairement à l'implémentation de Node.js, il n'est pas garanti que le contenu chunk
ait été vidé sur le fil avant que callback
ne soit appelé.
Ajoute un fragment de données au corps de la requête. La première opération d'écriture peut causer la publication des en-têtes de la requête sur le fil. Après la première opération d'écriture, il n'est pas autorisé d'ajouter ou de supprimer un en-tête personnalisé.
request.end([chunk][, encoding][, callback])
chunk
(string | Buffer) (facultatif)encoding
string (facultatif)callback
Function (facultatif)
Retourne this
.
Envoie le dernier bloc des données de la demande. Les opérations ultérieures d’écriture ou de fin ne seront pas autorisées. L’événement finish
est émis juste après l’opération finale.
request.abort()
Annule une transaction HTTP en cours. Si la requête a déjà émis l'événement close
, l'opération d'abandon n'aura aucun effet. Sinon, un événement en cours émettra des événements abandon
et close
. De plus, s'il y a un objet de réponse en cours, il émettra l'évènement abandonné
.
request.followRedirect()
Poursuit toute redirection en attente. Ne peut être appelé que pendant un événement 'redirect'
.
request.getUploadProgress()
Retourne Object
:
active
booléen - Indique si la requête est actuellement active. Si c'est faux aucune autre propriété ne sera définiestarted
booléen - Indique si le téléchargement a commencé. Si la valeur est false,current
ettotal
seront mis à 0.current
Integer - Le nombre d'octets qui ont été téléchargés jusqu'à présenttotal
Integer - Le nombre d'octets qui seront chargés dans cette requête
Vous pouvez utiliser cette méthode en conjonction avec les requêtes POST
pour obtenir la progression d'un téléchargement de fichier ou d'un autre transfert de données.