Include con una clase adapter para realizar peticiones http en formato Json basada en la interfaz COM de Microsoft Msxml2.XMLHTTP.
Para versiones iguales o superiores a Cosmos 6.0 (es necesaria la clase Json)
- La clase
cRequest
es la responsable de hacer las peticiones. - Es necesario inicializar el objeto con el método
reset
antes de usarlo. - Se pueden pasar parámetros en la query
- Se pueden añadir cabeceras
- Permite los cuatro métodos principales
GET
,POST
,UPDATE
,DELETE
- El resultado se almacena en la propiedad
Response
en formato Json. - Calcula con precisión de milésimas de segundos el tiempo en resolver la petición. Se obtiene con el método
getTimeElapsed
- La petición es síncrona
- Simplifica la autenticación con Basic Auth con el método
addBasicAuthHeader
private testQueryParameter
objects
begin
Request as cRequest
end
begin
Request.reset();
Request.Url = "http://uinames.com/api/";
Request.Method = HttpTypes.GET_METHOD;
Request.addQueryParameter( "region", "spain" );
Request.addQueryParameter( "ext", "" );
Request.send();
Request.Response.Trace();
end
Ejemplo no operativo por uso de
api-key
private testHeaders
objects
begin
Request as cRequest
end
begin
Request.reset();
Request.Url = "https://api.sendinblue.com/v3/senders";
Request.Method = HttpTypes.GET_METHOD;
Request.addHeader( "api-key", "abcdefg");
Request.send();
Request.Response.Trace();
end
Ejemplo no operativo por uso de
api-key
private testBodyParameter
objects
begin
Request as cRequest
jsnMain as Json
jsnAttributes as Json
jsnListIds as Json
end
begin
jsnAttributes.Set( "NAME", "DAVID" );
jsnAttributes.Set( "SURNAME", "CLOTHIER" );
jsnAttributes.Set( "M123_LUGAR", "OFFICE" );
jsnListIds.SetAsArray();
jsnListIds.AddArrayElement( 2 );
jsnListIds.AddArrayElement( 3 );
jsnMain.Set( "attributes", jsnAttributes );
jsnMain.Set( "listIds", jsnListIds );
jsnMain.Set( "emailBlacklisted", true );
jsnMain.Set( "smsBlacklisted", false );
Request.reset();
Request.Url = "https://api.sendinblue.com/v3/contacts/[email protected]";
Request.Method = HttpTypes.PUT_METHOD;
Request.addHeader( "api-key" , "abcdefg" );
Request.addHeader( "Content-Type", "application/json" );
Request.Body = jsnMain;
Request.send();
Request.StatusResponse.Trace;
end
private testBasicAuth
objects
begin
Request as cRequest
end
begin
Request.reset();
Request.Url = "https://jigsaw.w3.org/HTTP/Basic/";
Request.addBasicAuthHeader( "guest", "guest" );
Request.Method = HttpTypes.GET_METHOD;
Request.send();
switch Request.StatusResponse
begin
case HttpTypes.HTTP_200_OK: "Login Ok".Trace();
case HttpTypes.HTTP_401_UNAUTHORIZED: "Unauthorized".Trace();
default: "Unknown response".Trace();
end
end
- Envoltorio para otros métodos de autenticación como Digest, OAuth 2.0, etc.
- Petición asíncrona con callback
- David Ropero - [email protected]
Porque ya era hora de que alguien subiera un repo en Cosmos a github 😜
GNU Public License v3.0