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 :
responseIncomingMessage - Un objet représentant le message de réponse HTTP.
Événement : 'login'
Retourne :
- Objet
authInfoisProxybooleanschemestringhoststringportIntegerrealmstring
callbackFunctionusernamestring (facultatif)passwordstring (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 :
usernamestringpasswordstring
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 :
errorErreur - 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 :
statusCodeIntegermethodstringredirectUrlstringresponseHeadersRecord<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)
namestring - Un nom d'en-tête HTTP supplémentaire.valeurstring - 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-LengthHostTrailerorTeUpgradeCookie2Keep-AliveTransfer-Encoding
De plus, la définition de l'en-tête Connection à la valeur upgrade est également interdite.
request.getHeader(name)
namechaî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)
namechaî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é.encodingstring (facultatif) - Utilisé pour convertir des fragments de chaîne en objets Buffer. La valeur par défaut est 'utf-8'.callbackFonction (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)encodingstring (facultatif)callbackFunction (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:
activebooléen - Indique si la requête est actuellement active. Si c'est faux aucune autre propriété ne sera définiestartedbooléen - Indique si le téléchargement a commencé. Si la valeur est false,currentettotalseront mis à 0.currentInteger - Le nombre d'octets qui ont été téléchargés jusqu'à présenttotalInteger - 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.