HttpRequest - Exemples
| HttpRequest = class (TObject) | Interface de HttpRequest | Exemples de HttpRequest |
uses System.Net;
var r := HttpQuery.Request('GET', 'http://www.google.fr');
// ... here is your code that will be executed during
// the time the request is processed by the server ...
// when you finally need the result, check if request is complete
while not r.Completed do
Sleep(10);
case r.StatusCode of
0: raise Exception.Create('Connection error');
200: begin
PrintLn(r.Header['date']); // récupération d'un header de la réponse
PrintLn(r.ContentType); // récupération du type de données de la réponse
PrintLn(r.ContentData); // récupération des données brutes de la réponse
end;
else
raise Exception.Create('Error ' + r.StatusCode.ToString);
end;
var r := HttpQuery.Request('GET', 'http://www.google.fr');
// ... here is your code that will be executed during
// the time the request is processed by the server ...
// when you finally need the result, check if request is complete
while not r.Completed do
Sleep(10);
case r.StatusCode of
0: raise Exception.Create('Connection error');
200: begin
PrintLn(r.Header['date']); // récupération d'un header de la réponse
PrintLn(r.ContentType); // récupération du type de données de la réponse
PrintLn(r.ContentData); // récupération des données brutes de la réponse
end;
else
raise Exception.Create('Error ' + r.StatusCode.ToString);
end;
Exemple d'un script qui effectue uniquement une requête dont on ne souhaite pas attendre la réponse, car elle est potentiellement lente.
NB : si le code de l'API est modifiable, il vaut mieux la transformer en une API externe rapide qui prend en charge le traitement et qui répond "OK" et une API interne lente qui effectue le traitement. Il est même possible de prévoir une API externe rapide qui indique l'avancement du traitement.
uses System.Net;
var r := HttpQuery.Request('GET', 'http://www.google.fr');
// leave some time to be sure the request will be really sent, before finishing the script execution, hence killing the query object
Sleep(100);
var r := HttpQuery.Request('GET', 'http://www.google.fr');
// leave some time to be sure the request will be really sent, before finishing the script execution, hence killing the query object
Sleep(100);