Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
HTTPClient
Hérite de : RefCounted < Object
Client de protocole de transfert hypertexte de bas niveau.
Description
Client de protocole de transfert hypertexte (parfois appelé "User Agent"). Utilisé pour faire des requêtes HTTP pour télécharger du contenu web, téléverser des fichiers et d'autres données ou communiquer avec divers services, ou pour d'autres cas d'utilisation.
Voir le nœud HTTPRequest pour une alternative de plus haut-niveau.
Note : Ce client doit seulement se connecter à un hôte une fois (voir connect_to_host()) pour envoyer plusieurs requêtes. En raison de cela, les méthodes qui prennent des URL prennent généralement juste la partie après l'hôte au lieu de l'URL complète, puisque le client est déjà connecté à l'hôte. Voir request() pour un exemple complet pour pouvoir démarrer.
Un HTTPClient devrait être réutilisé entre plusieurs requêtes ou pour se connecter à différents hôtes au lieu de créer un client par requête. Supporte le protocole Transport Layer Security (TLS), y compris la vérification du certificat du serveur. Les codes de statut HTTP de la plage 2xx indiquent un succès, 3xx une redirection (c.-à-d. "essayez à nouveau, mais ici"), 4xx que quelque chose ne va pas avec la requête, et 5xx qu'un problème est survenu du côté du serveur.
Pour plus d'informations sur HTTP, voir la documentation de MDN sur HTTP (ou lire le RFC 2616 pour l'avoir directement depuis la source).
Note : Lors de l'export vers Android, assurez-vous d'activer la permission INTERNET dans le préréglage d'export Android avant d'exporter le projet ou en utilisant le déploiement en un clic. Sinon, la communication réseau de tout type sera bloquée par Android.
Note : Il est recommandé d'utiliser le chiffrement du transport (TLS) et d'éviter d'envoyer des informations sensibles (comme des identifiants de connexion) dans les paramètres d'URL GET HTTP. Envisagez d'utiliser des requêtes HTTP POST ou des en-têtes HTTP pour ces informations à la place.
Note : Lorsque vous effectuez des requêtes HTTP d'un projet exporté vers le Web, gardez à l'esprit que le serveur distant peut ne pas autoriser des requêtes d'origine étrangère en raison du CORS. Si vous hébergez le serveur en question, vous devez modifier son backend pour autoriser les requêtes d'origine étrangère en ajoutant l'en-tête HTTP Access-Control-Allow-Origin: *.
Note : Le support TLS est actuellement limité à TLSv1.1 et TLSv1.3. Tenter de se connecter à un serveur qui ne supporte que des versions plus vieilles (non sécurisées) de TLS renverra une erreur.
Avertissement : La révocation de certificat TLS et le pinning de certificat ne sont actuellement pas supportés. Les certificats révoqués sont acceptés tant qu'ils sont sinon valides. Si c'est un problème, vous pourriez vouloir utiliser des certificats gérés automatiquement avec une courte période de validité.
Tutoriels
Propriétés
|
||
|
Méthodes
void |
close() |
connect_to_host(host: String, port: int = -1, tls_options: TLSOptions = null) |
|
get_response_body_length() const |
|
get_response_code() const |
|
get_status() const |
|
has_response() const |
|
is_response_chunked() const |
|
poll() |
|
query_string_from_dict(fields: Dictionary) |
|
request(method: Method, url: String, headers: PackedStringArray, body: String = "") |
|
request_raw(method: Method, url: String, headers: PackedStringArray, body: PackedByteArray) |
|
void |
set_http_proxy(host: String, port: int) |
void |
set_https_proxy(host: String, port: int) |
Énumérations
enum Method: 🔗
Method METHOD_GET = 0
La méthode HTTP GET. La méthode GET demande une représentation de la ressource spécifiée. Les requêtes avec GET ne devrait faire que récupérer des données.
Method METHOD_HEAD = 1
La méthode HTTP "HEAD". La méthode "HEAD" demande une réponse identique à celle d'une requête "GET", mais sans le corps de la réponse. Ceci est utile pour demander des métadonnées comme des en-têtes HTTP ou pour vérifier si une ressource existe.
Method METHOD_POST = 2
La méthode HTTP "POST". La méthode "POST" est utilisée pour soumettre une entité à la ressource spécifiée, causant souvent un changement d'état sur le serveur. Ceci est souvent utilisé pour les formulaires, pour soumettre des données ou télécharger des fichiers.
Method METHOD_PUT = 3
La méthode HTTP "PUT". La méthode "PUT" demander à remplacer toutes les représentations actuelles de la ressource cible par les données fournies. (Vous pouvez considérer "POST" comme une méthode pour "créer ou mettre à jour" et "PUT" comme "mise à jour", même que de nombreux services ne font pas de distinction voire en change leur sens).
Method METHOD_DELETE = 4
La méthode HTTP "DELETE". Elle permet de demander la suppression de la ressource spécifiée.
Method METHOD_OPTIONS = 5
La méthode HTTP "OPTIONS". La méthode "OPTIONS" demande une description des options de communication pour la ressource cible. Elle est rarement utilisée.
Method METHOD_TRACE = 6
La méthode HTTP "TRACE". La méthode "TRACE" effectue un test de boucle de message suivant le chemin vers la ressource cible. Renvoie toute la requête HTTP reçue dans le corps de réponse. Rarement utilisée.
Method METHOD_CONNECT = 7
La méthode HTTP "CONNECT". La méthode "CONNECT" établit un tunnel vers serveur identifié par la ressource cible. Elle est rarement utilisée.
Method METHOD_PATCH = 8
La méthode HTTP "PATCH". La méthode "PATCH" est utilisée pour appliquer des modifications partielles à une ressource.
Method METHOD_MAX = 9
Représente la taille de l'énumération Method.
enum Status: 🔗
Status STATUS_DISCONNECTED = 0
Statut : Déconnecté du serveur.
Status STATUS_RESOLVING = 1
Status : Actuellement en train de résoudre l'hôte de l'URL donnée en adresse IP.
Status STATUS_CANT_RESOLVE = 2
Statut : Échec du DNS : N'a pas pu résoudre le nom d'hôte pour l'URL spécifiée.
Status STATUS_CONNECTING = 3
Statut : En cours de connexion au serveur.
Status STATUS_CANT_CONNECT = 4
État : Ne peut pas se connecter au serveur.
Status STATUS_CONNECTED = 5
Statut : Connexion établie.
Status STATUS_REQUESTING = 6
Statut : Demande en cours d'envoi.
Status STATUS_BODY = 7
Statut : corps HTTP reçu.
Status STATUS_CONNECTION_ERROR = 8
Statut : Erreur dans la connexion HTTP.
Status STATUS_TLS_HANDSHAKE_ERROR = 9
Statut : Erreur dans la poignée de main TLS.
enum ResponseCode: 🔗
ResponseCode RESPONSE_CONTINUE = 100
Code de statut HTTP 100 Continue. La réponse intermédiaire qui indique que tout est bon jusqu'à présent et que le client devrait continuer avec cette demande (ou ignorer ce statut s'il a déjà terminé).
ResponseCode RESPONSE_SWITCHING_PROTOCOLS = 101
Code de statut HTTP 101 Switching Protocol. Envoyé en réponse à une en-tête de requête Upgrade du client. Précise le nouveau protocole que le serveur utilise dès à présent.
ResponseCode RESPONSE_PROCESSING = 102
Code de statut HTTP 102 Processing (WebDAV). Indique que le serveur a reçu la requête et la traite, mais aucune réponse n'est disponible pour l'instant.
ResponseCode RESPONSE_OK = 200
Code de statut HTTP 200 OK. La requête a réussi. Réponse par défaut pour les requêtes réussies. La signification varie selon la requête :
METHOD_GET : La ressource a été récupérée et est transmise dans le corps du message.
METHOD_HEAD : Les en-têtes de l'entité sont dans le corps du message.
METHOD_POST : La ressource décrivant le résultat de l'action est transmise dans le corps du message.
METHOD_TRACE : Le corps du message contient le message de requête comme reçu par le serveur.
ResponseCode RESPONSE_CREATED = 201
Code de statut HTTP 201 Created. La requête a réussi et une nouvelle ressource a été créée en conséquence. C'est généralement la réponse envoyée après une requête "PUT".
ResponseCode RESPONSE_ACCEPTED = 202
Code de statut HTTP 202 Accepted. La requête a été reçue mais n'a pas encore été traitée. Aucune réponse n'est envoyé même asynchrone indiquant le résultat du traitement de cette requête. Il est destiné aux cas où un autre processus ou un serveur traite la requête, ou pour le traitement par lots.
ResponseCode RESPONSE_NON_AUTHORITATIVE_INFORMATION = 203
Code de statut HTTP 203 Non-Authoritative Information. Ce code de réponse signifie que l'ensemble de méta-donnée retournée n'est pas la copie exacte de celles sur le serveur d'origine, mais composée à partir d'une copie locale ou autre. Sauf dans ce cas, la réponse 200 "OK" est préférable à la place de cette réponse.
ResponseCode RESPONSE_NO_CONTENT = 204
Code de statut HTTP 204 No Content. Il n'y a pas de contenu à envoyer en réponse à cette requête, mais les en-têtes peuvent être utiles. Le user-agent peut mettre à jour les en-têtes de cette ressource avec de nouvelles.
ResponseCode RESPONSE_RESET_CONTENT = 205
Code de statut HTTP 205 Reset Content. Le serveur a rempli la requête et souhaite que le client réinitialise son « vue de document » qui a envoyé la requête à son état original tel qu'il a été reçu du serveur d'origine.
ResponseCode RESPONSE_PARTIAL_CONTENT = 206
Code de statut HTTP 206 Partial Content. Ce code de réponse est utilisé suivant l'intervalle spécifié dans l'en-tête envoyé par le client pour que le téléchargement soit disponible dans plusieurs flux.
ResponseCode RESPONSE_MULTI_STATUS = 207
Code de statut HTTP 207 Multi-Status (WebDAV). Une réponse multi-états qui transmet des informations sur plusieurs ressources dans des situations où plusieurs codes de statut seraient appropriés.
ResponseCode RESPONSE_ALREADY_REPORTED = 208
Code de statut HTTP 208 Already Reported (WebDAV). Utilisé à l'intérieur d'un DAV : l'élément de réponse "propstat" pour éviter d'énumérer plusieurs fois les membres internes de liaisons d'une même collection.
ResponseCode RESPONSE_IM_USED = 226
Code de statut HTTP 226 IM Used (WebDAV). Le serveur a traité une requête GET pour cette ressource, et la réponse est une représentation du résultat d'une ou plusieurs manipulations d'instance appliquées à l'instance actuelle.
ResponseCode RESPONSE_MULTIPLE_CHOICES = 300
Code de statut HTTP 300 Multiple Choice. La requête a plusieurs réponses possibles et il n'y a pas de moyen spécifique de choisir la bonne réponse. C'est alors le user-agent ou l'utilisateur qui devrait la choisir parmi celle retournées.
ResponseCode RESPONSE_MOVED_PERMANENTLY = 301
Code de statut HTTP 301 Moved Permanently. Redirection. Ce code de réponse signifie que l'URI des ressources demandées a été modifiée. La nouvelle URI est généralement retournée dans cette réponse.
ResponseCode RESPONSE_FOUND = 302
Code de statut HTTP 302 Found. Redirection temporaire. Ce code de réponse signifie que l'URI de la ressource demandée a été changée temporairement. De nouveaux changements dans l'URI pourraient être faits à l'avenir. Par conséquent, ce même URI devrait être utilisé par le client dans les demandes futures.
ResponseCode RESPONSE_SEE_OTHER = 303
Code de statut HTTP 303 See Other. Le serveur redirige l'agent utilisateur vers une ressource différente, comme l'indique un URI dans le champ d'en-tête "Location", qui est destiné à fournir une réponse indirecte à la demande initiale.
ResponseCode RESPONSE_NOT_MODIFIED = 304
Code de statut HTTP 304 Not Modified. Une demande conditionnelle de GET ou de HEAD a été reçue et aurait abouti à une réponse de 200 OK si la condition n'aurait pas été évaluée à false.
ResponseCode RESPONSE_USE_PROXY = 305
Obsolète : Many clients ignore this response code for security reasons. It is also deprecated by the HTTP standard.
Code de statut HTTP 305 Use Proxy.
ResponseCode RESPONSE_SWITCH_PROXY = 306
Obsolète : Many clients ignore this response code for security reasons. It is also deprecated by the HTTP standard.
Code de statut HTTP 306 Switch Proxy.
ResponseCode RESPONSE_TEMPORARY_REDIRECT = 307
Code de statut HTTP 307 Temporary Redirect. La ressource cible réside temporairement sous un URI différent et l'agent utilisateur NE DOIT PAS changer la méthode de demande si elle effectue une redirection automatique vers cet URI.
ResponseCode RESPONSE_PERMANENT_REDIRECT = 308
Code de statut HTTP 308 Permanent Redirect. La ressource cible a été affectée à un nouvel URI permanent et toute référence future à cette ressource devrait utiliser l'un des URIs joints.
ResponseCode RESPONSE_BAD_REQUEST = 400
HTTP status code 400 Bad Request. The request was invalid. The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, invalid request contents, or deceptive request routing).
ResponseCode RESPONSE_UNAUTHORIZED = 401
Code de statut HTTP 401 Unauthorized. Identifiants requis. La requête n'a pas été appliquée parce qu'elle ne dispose pas d'identifiants d'authentification valables pour la ressource cible.
ResponseCode RESPONSE_PAYMENT_REQUIRED = 402
Code de statut HTTP 402 Payment Required. Ce code de réponse est réservé à une utilisation future. L'objectif initial de création de ce code était de l'utiliser pour les systèmes de paiement numérique, mais il n'est actuellement pas utilisé.
ResponseCode RESPONSE_FORBIDDEN = 403
Code de statut HTTP 403 Forbidden. Le client n'a pas de droits d'accès au contenu, c'est-à-dire qu'ils sont non autorisés, donc le serveur refuse de donner une réponse appropriée. Contrairement à 401, l'identité du client est connue du serveur.
ResponseCode RESPONSE_NOT_FOUND = 404
Code de statut HTTP 404 Not Found. Le serveur ne peut pas trouver de ressources demandées. Soit l'URL n'est pas reconnue ou le endpoint ("point de terminaison") est valide mais la ressource elle-même n'existe pas. Peut également être envoyé au lieu de 403 pour cacher l'existence d'une ressource si le client n'est pas autorisé.
ResponseCode RESPONSE_METHOD_NOT_ALLOWED = 405
Code de statut HTTP 405 Method Not Allowed. La méthode HTTP de la requête est connue par le serveur mais a été désactivée et ne peut pas être utilisée. Par exemple, une API peut interdire de DELETE (supprimer) une ressource. Les deux méthodes obligatoires, GET et HEAD, ne doivent jamais être désactivées et ne doivent pas renvoyer ce code d'erreur.
ResponseCode RESPONSE_NOT_ACCEPTABLE = 406
Code de statut HTTP 406 Not Acceptable. La ressource cible n'a pas de représentation actuelle qui serait acceptable pour l'agent utilisateur, selon les champs d'en-tête de négociation proactives reçus dans la requête. Utilisé lors de la négociation du contenu.
ResponseCode RESPONSE_PROXY_AUTHENTICATION_REQUIRED = 407
Code de statut HTTP 407 Proxy Authentication Required. Semblable à 401 Unauthorized, mais il indique que le client doit s'authentifier pour utiliser un proxy.
ResponseCode RESPONSE_REQUEST_TIMEOUT = 408
Code de statut HTTP 408 Request Timeout. Le serveur n'a pas reçu un message de requête complet durant le temps qu'il était prêt à attendre.
ResponseCode RESPONSE_CONFLICT = 409
Code de statut HTTP 409 Conflict. La requête n'a pu être complétée à cause d'un conflit avec l'état actuel de la ressource cible. Ce code est utilisé dans les situations où l'utilisateur peut être capable de résoudre le conflit et de soumettre à nouveau la requête.
ResponseCode RESPONSE_GONE = 410
Code de statut HTTP 410 Gone. La ressource cible n'est plus disponible sur le serveur d'origine et cette condition est probablement permanente.
ResponseCode RESPONSE_LENGTH_REQUIRED = 411
Code de statut HTTP 411 Length Required. Le serveur refuse d'accepter la requête sans une en-tête Content-Length définie.
ResponseCode RESPONSE_PRECONDITION_FAILED = 412
Code de statut HTTP 412 Precondition Failed. Une ou plusieurs conditions dans les champs d'en-tête de la requête sont évaluées à false lors de l'essai sur le serveur.
ResponseCode RESPONSE_REQUEST_ENTITY_TOO_LARGE = 413
Code de statut HTTP 413 Entity Too Large. Le serveur refuse de traiter une requête parce que le payload ("charge utile") demandée est plus grande que ce que le serveur est prêt ou capable de traiter.
ResponseCode RESPONSE_REQUEST_URI_TOO_LONG = 414
Code de statut HTTP 414 Request-URI Too Long. Le serveur refuse de servir la requête parce que l'entête "request-target" est plus longue que ce que le serveur est prêt à interpréter.
ResponseCode RESPONSE_UNSUPPORTED_MEDIA_TYPE = 415
Code de statut HTTP 415 Unsupported Media Type. Le serveur d'origine refuse de servir la requête parce que le payload ("charge utile") est dans un format non supporté par cette méthode sur la ressource cible.
ResponseCode RESPONSE_REQUESTED_RANGE_NOT_SATISFIABLE = 416
Code de statut HTTP 416 Requested Range Not Satisfiable. Aucune des plages du champ d'en-tête "Range" de la requête ne recouvre l'étendue actuelle de la ressource sélectionnée ou l'ensemble des plages demandées a été rejeté en raison de plages invalides ou d'une demande excessive de petites plages ou de plages chevauchantes.
ResponseCode RESPONSE_EXPECTATION_FAILED = 417
Code de statut HTTP 417 Expectation Failed. L'expectation donnée dans le champ d'en-tête "Expect" de la requête ne pouvait pas être satisfaite par au moins un des serveurs de réception.
ResponseCode RESPONSE_IM_A_TEAPOT = 418
Code de statut HTTP 418 I'm A Teapot. Toute tentative de préparer du café avec une théière devrait entraîner le code d'erreur "418 I'm a teapot". L'entité résultante PEUT être courte et forte.
ResponseCode RESPONSE_MISDIRECTED_REQUEST = 421
Code de statut HTTP 421 Misdirected Request. La demande a été dirigée vers un serveur qui n'est pas en mesure de produire une réponse. Ceci peut être envoyé par un serveur qui n'est pas configuré pour produire des réponses pour la combinaison de schéma et d'autorité qui sont inclus dans la requête URI.
ResponseCode RESPONSE_UNPROCESSABLE_ENTITY = 422
Code de statut HTTP 422 Unprocessable Entity (WebDAV). Le serveur comprend le type de contenu de l'entité de requête (ainsi, un code de statut 415 Unsupported Media Type n'est pas approprié) et la syntaxe de l'entité de requête est correcte (c'est pourquoi un code de statut 400 Bad Request est inapproprié) mais n'a pas été en mesure de traiter les instructions contenues.
ResponseCode RESPONSE_LOCKED = 423
Code de statut HTTP 423 Locked (WebDAV). La source ou la destination de ressource d'une méthode est verrouillée.
ResponseCode RESPONSE_FAILED_DEPENDENCY = 424
Code de statut HTTP 424 Failed Dependency (WebDAV). La méthode ne pouvait être exécutée sur la ressource parce que l'action demandée dépendait d'une autre action et que cette dernière a échoué.
ResponseCode RESPONSE_UPGRADE_REQUIRED = 426
Code de statut HTTP 426 Upgrade Required. Le serveur refuse d'exécuter la requête en utilisant le protocole actuel, mais pourrait être prêt à le faire après que le client se soit mis à jour vers un protocole différent.
ResponseCode RESPONSE_PRECONDITION_REQUIRED = 428
Code de statut HTTP 428 Precondition Required. Le serveur d'origine exige que la requête soit conditionnelle.
ResponseCode RESPONSE_TOO_MANY_REQUESTS = 429
Code de statut HTTP 429 Too Many Requests. L'utilisateur a envoyé trop de demandes dans un certain temps (voir le "rate limiting"). Freinez un peu et augmentez le temps entre les requêtes ou essayez à nouveau plus tard.
ResponseCode RESPONSE_REQUEST_HEADER_FIELDS_TOO_LARGE = 431
Code de statut HTTP 431 Request Header Fields Too Large. Le serveur ne veut pas traiter la requête parce que ses champs d'en-tête sont trop grands. La requête PEUT être soumise à nouveau après avoir réduit la taille des champs d'en-tête de la requête.
Code de statut HTTP 451 Response Unavailable For Legal Reasons. Le serveur refuse l'accès à la ressource en raison d'une demande légale.
ResponseCode RESPONSE_INTERNAL_SERVER_ERROR = 500
Code de statut HTTP 500 Internal Server Error. Le serveur a rencontré une condition inattendue qui l'empêchait de répondre à la requête.
ResponseCode RESPONSE_NOT_IMPLEMENTED = 501
Code de statut HTTP 501 Not Implemented. Le serveur ne supporte pas la fonctionnalité requise pour répondre à la requête.
ResponseCode RESPONSE_BAD_GATEWAY = 502
Code de statut HTTP 502 Bad Gateway. Le serveur, en agissant comme passerelle ou proxy, a reçu une réponse invalide d'un serveur entrant auquel il a accédé en essayant de répondre à la requête. Habituellement renvoyé par les répartiteurs de charge ou les proxies.
Code de statut HTTP 503 Service Unavailable. Le serveur n'est actuellement pas en mesure de traiter la requête en raison d'une surcharge temporaire ou d'une maintenance planifiée, ce qui sera probablement atténué après un certain temps. Essayez encore plus tard.
ResponseCode RESPONSE_GATEWAY_TIMEOUT = 504
Code de statut HTTP 504 Gateway Timeout. Le serveur, en agissant comme passerelle ou proxy, n'a pas reçu une réponse à temps d'un serveur en amont dont il avait besoin d'accéder afin de compléter la requête. Habituellement renvoyé par les répartiteurs de charge ou les proxies.
ResponseCode RESPONSE_HTTP_VERSION_NOT_SUPPORTED = 505
Code de statut HTTP 505 HTTP Version Not Supported. Le serveur ne supporte pas, ou refuse de supporter, la version majeure de HTTP utilisée dans le message de requête.
ResponseCode RESPONSE_VARIANT_ALSO_NEGOTIATES = 506
Code de statut HTTP 506 Variant Also Negotiates. Le serveur a une erreur de configuration interne : la ressource variante choisie est configurée pour s'engager dans la négociation de contenu transparent elle-même, et n'est donc pas un endpoint ("point de terminaison") dans le processus de négociation.
ResponseCode RESPONSE_INSUFFICIENT_STORAGE = 507
Code de statut HTTP 507 Insufficient Storage. La méthode n'a pas pu être exécutée sur la ressource parce que le serveur n'est pas en mesure de stocker la représentation nécessaire pour remplir avec succès la requête.
ResponseCode RESPONSE_LOOP_DETECTED = 508
Code de statut HTTP 508 Loop Detected. Le serveur a mis fin à une opération parce qu'il a rencontré une boucle infinie tout en traitant une requête avec "Depth: infinity". Cette situation indique que toute l'opération a échoué.
ResponseCode RESPONSE_NOT_EXTENDED = 510
Code de statut HTTP 510 Not Extended. La politique d'accès à la ressource n'a pas été respectée dans la demande. Le serveur devrait renvoyer toutes les informations nécessaires pour que le client émette une requête étendue.
ResponseCode RESPONSE_NETWORK_AUTH_REQUIRED = 511
Code de statut HTTP 511 Network Authentication Required. Le client doit s'authentifier pour accéder au réseau.
Descriptions des propriétés
bool blocking_mode_enabled = false 🔗
Si true, l'exécution sera bloquée jusqu'à ce que toutes les données de la réponse soit lues.
StreamPeer connection 🔗
void set_connection(value: StreamPeer)
StreamPeer get_connection()
La connexion à utiliser pour ce client.
La taille de la mémoire tampon utilisée et le nombre maximal d'octets à lire à chaque itération. Voir read_response_body_chunk().
Descriptions des méthodes
void close() 🔗
Ferme l'actuelle connexion, permettant de la réutiliser pour cet HTTPClient.
Error connect_to_host(host: String, port: int = -1, tls_options: TLSOptions = null) 🔗
Se connecte à un hôte. Cela est nécessaire avant d'effectuer une quelconque requête.
Si aucun port n'est spécifié (ou -1 est utilisé), il est automatiquement défini à 80 pour HTTP et 443 pour HTTPS. Vous pouvez passer le paramètre optionnel tls_options pour personnaliser les autorités de certification de confiance, ou la vérification de nom commun lors de l'utilisation d'HTTPS. Voir TLSOptions.client() et TLSOptions.client_unsafe().
int get_response_body_length() const 🔗
Renvoie la longueur du corps de la requête.
Note : Certains serveurs web peuvent ne pas envoyer une longueur de corps. Dans ce cas, la valeur renvoyée sera -1. Si vous utilisez le chunked transfer encoding, la longueur du corps sera également de -1.
Note : Cette fonction renvoie toujours -1 sur la plateforme Web en raison des limitations des navigateurs.
int get_response_code() const 🔗
Renvoie le code de statut de la réponse HTTP.
PackedStringArray get_response_headers() 🔗
Renvoie les en-têtes de réponse.
Dictionary get_response_headers_as_dictionary() 🔗
Renvoie tous les en-têtes de réponse en tant que Dictionary. Chaque entrée est composée du nom de l'en-tête, et un String contenant les valeurs séparées par "; ". La casse est gardée comme ont été reçus les en-têtes.
{
"content-length": 12,
"Content-Type": "application/json; charset=UTF-8",
}
Renvoie une constante Status. Vous devez appeler poll() pour obtenir des mises à jour de statut.
Si true, ce HTTPClient a une réponse disponible.
bool is_response_chunked() const 🔗
Si true, cet HTTPClient reçoit une réponse en différentes parties.
Cela doit être appelé pour que les requêtes puissent être traitée. Vérifiez les résultats avec get_status().
String query_string_from_dict(fields: Dictionary) 🔗
Génère une chaîne de requête de style GET/POST application/x-www-form-urlencoded depuis un dictionnaire fourni, par ex. :
var fields = { "username": "user", "password": "pass" }
var query_string = http_client.query_string_from_dict(fields)
# Renvoie "username=user&password=pass"
var fields = new Godot.Collections.Dictionary { { "username", "user" }, { "password", "pass" } };
string queryString = httpClient.QueryStringFromDict(fields);
// Renvoie "username=user&password=pass"
En outre, si une clé a une valeur null, seule la clé elle-même est ajoutée, sans signe égal et valeur. Si la valeur est un tableau, pour chaque valeur dans celui-ci une paire avec la même clé est ajoutée.
var fields = { "single": 123, "not_valued": null, "multiple": [22, 33, 44] }
var query_string = http_client.query_string_from_dict(fields)
# Renvoie "single=123¬_valued&multiple=22&multiple=33&multiple=44"
var fields = new Godot.Collections.Dictionary
{
{ "single", 123 },
{ "notValued", default },
{ "multiple", new Godot.Collections.Array { 22, 33, 44 } },
};
string queryString = httpClient.QueryStringFromDict(fields);
// Renvoie "single=123¬_valued&multiple=22&multiple=33&multiple=44"
PackedByteArray read_response_body_chunk() 🔗
Lit une partie de la réponse.
Error request(method: Method, url: String, headers: PackedStringArray, body: String = "") 🔗
Envoie une requête HTTP à l'hôte connecté avec la méthode method donnée.
Le paramètre de l'URL est généralement juste la partie après l'hôte, donc pour https://example.com/index.php, il s'agit de /index.php. Lors de l'envoi de requêtes vers un serveur proxy HTTP, elle devrait être une URL absolue. Pour les requêtes METHOD_OPTIONS, * est aussi autorisé. Pour les requêtes METHOD_CONNECT, elle devrait être le composant d'autorité (host:port).
headers sont des en-têtes de requête HTTP.
Pour créer une requête POST avec des chaînes de requête à envoyer sur le serveur, faire :
var fields = { "username": "user", "password": "pass" }
var query_string = http_client.query_string_from_dict(fields)
var headers = ["Content-Type: application/x-www-form-urlencoded", "Content-Length: " + str(query_string.length())]
var result = http_client.request(http_client.METHOD_POST, "/index.php", headers, query_string)
var fields = new Godot.Collections.Dictionary { { "username", "user" }, { "password", "pass" } };
string queryString = new HttpClient().QueryStringFromDict(fields);
string[] headers = ["Content-Type: application/x-www-form-urlencoded", $"Content-Length: {queryString.Length}"];
var result = new HttpClient().Request(HttpClient.Method.Post, "index.php", headers, queryString);
Note : Le paramètre body est ignoré si method vaut METHOD_GET. C'est parce que les méthodes GET ne peuvent pas contenir de données de requête. Pour contourner cela, vous pouvez passer des données de requête en tant que chaîne de requête dans l'URL. Voir String.uri_encode() pour un exemple.
Error request_raw(method: Method, url: String, headers: PackedStringArray, body: PackedByteArray) 🔗
Envoie une requête HTTP brute à l'hôte connecté avec la méthode method donnée.
Le paramètre URL est généralement juste la partie après le nom de l'hôte, donc pour http://example.com/index.php, il s'agit de /index.php. Lors de l'envoi de requêtes vers un serveur de proxy HTTP, cela devrait être une URL absolue. Pour les requêtes METHOD_OPTIONS, * est également autorisé. Pour les requêtes METHOD_CONNECT, cela devrait être le composant d'autorité (host:port).
headers sont les en-têtes de la requête HTTP.
Envoie les données du corps de manière brute, en tant que tableau d'octets et ne l'encode pas du tout.
void set_http_proxy(host: String, port: int) 🔗
Définit le serveur de proxy pour les requêtes HTTP.
Le serveur de proxy n'est pas défini si host est vide ou si port vaut -1.
void set_https_proxy(host: String, port: int) 🔗
Définit le serveur de proxy pour les requêtes HTTPS.
Le serveur de proxy n'est pas défini si host est vide ou si port vaut -1.