HttpQuery.SetCustomHeaders
| HttpQuery = class static (TObject) | Interface de HttpQuery | Exemples de HttpQuery |
Qubes 6.8 Définition d'en-tête de requête
Syntaxe
class procedure SetCustomHeaders(headers: array of string)
Remarques
Permet de spécifier les en-têtes HTTP.
Ils doivent être indiqués comme attendu par le http, c'est-à-dire sous la forme Nom : valeur (le nom et sa valeur sont séparés par le caractères deux-points).
Les headers définis restent valides pour toutes les requêtes HttpQuery suivante jusqu'à la fin du script ou au prochain appel à SetCustomHeaders.
Note: l'en-tête "Authorization" ne peut pas être défini par cette méthode, utiliser SetCredentials.
Dans le context du QubesExpress, cette méthode permet notamment de spécifier le cookie de session, afin de transférer l'authentification courante lors d'un appel à un WebScript. Attention dans ce cas d'usage, il faut bien effacer les en-tête pour éviter que le cookie soit transmis par inadvertance à une éventuelle API externe!
Exemples
HttpQuery.SetCustomHeaders([ 'Cookie: QuBESSession=' + QubesExpressCurrentSessionCookie ]);
try
// une serie d'appels pours lesquels le cookie sera passé
var data := '';
if HttpQuery.GetData('http://myserver/webScript1', data) = 200 then ... else ...;
if HttpQuery.GetData('http://myserver/webScript2', data) = 200 then ... else ...;
finally
// effacement avant appel à une API externe, afin de ne pas transférer le cookie
HttpQuery.SetCustomHeaders([]);
end;
HttpQuery.PostData('https://external.server/some/api', 'payload', 'text/plain', data);