//**********************************************************************************************************************************
// GSHTTP v1.3b (liteC)
//**********************************************************************************************************************************
// Todas las funciones devuelven 0 si todo fué bien y 1 si ocurrió un error
// id es el número del cliente HTTP. El primero es 0.
var HTTP_Create ( var id );
// Crea un cliente HTTP
void HTTP_Get ( var id, STRING* url_str) ;
// Llamada HTTP a url_str
void HTTP_Post ( var id, STRING* url_str, STRING* data_str );
// Llamada HTTP POST a url_str con data_str como datos POST
void HTTP_PostFile ( var id, STRING* url_str, STRING* file_str, STRING* var_str );
// Llamada HTTP POST a url_str y sube el archivo file_str via multipart mime
// File_str es el Directorio de Acknex EXE + file_str
// El contenido de la subida es fijado como application/x-compress
void HTTP_PostFile2 ( var id, STRING* url_str, STRING* file_str );
// Llamada HTTP POST a url_str y sube el archivo file_str via multipart mime
// File_str es el Directorio de Acknex EXE + file_str
void HTTP_Abort ( var id );
// Detener el cliente HTTP.
var HTTP_IsWorking ( var id );
// Comprueba si HTTP_Get() o HTTP_Post() están en funcionamiento
void HTTP_Results ( var id, STRING* results_str);
// Llena results_str con el resultado de HTTP_Get() o HTTP_Post().
// Si existiera algún error HTTP, llena results_str con el número de error.
void HTTP_SaveToFile ( var id, STRING* filename_str);
// Guarda el resultado de HTTP_Get() o HTTP_Post() en un archivo llamado como el contenido de filename_str.
// Si hubiera algún error HTTP, el archivo contendrá el número de error.
// Se añadirá la ruta de acknex exe al inicio de filename_str.
// Para guardar el archivo en la carpeta del programa, filename_str tendría que ser parecido a "blah.mdl".
// Para guardar el archivo en una subcarpeta del programa, filename_str debería ser "\\blah\\blah.mdl".
// Las contrabarras en Acknex tienen que ser dobles, sino las ignorará.
void HTTP_Free ( var id ); // Libera el cliente HTTP
// Libera los clientes desde el último a el primero (100, 99, 98...).
// Liberando clientes intermedios modificará el número de los siguientes clientes.
// Si tienes 10 clientes y liberas el #5, el #6 se convertirá en el #5, el #7 en el #6 y así. Terminará con 9 clientes en la lista.
//**********************************************************************************************************************************
// FUNCIONES AL USO
//**********************************************************************************************************************************
function Pagina_Web ( STRING* WEB_HTTP, STRING* STR_Resultado )
{
if ( HTTP_Create(0) == 0 )
{
HTTP_Get( 0, WEB_HTTP );
while ( HTTP_IsWorking(0) == 1 )
{
wait(16);
}
HTTP_Results ( 0, STR_Resultado );
HTTP_Free(0);
}
}
function Pagina_Post ( STRING* WEB_POST, STRING* STR_Post, STRING* STR_Resultado )
{
if ( HTTP_Create(0) == 0 )
{
HTTP_Post( 0, WEB_POST, STR_Post );
while ( HTTP_IsWorking(0) == 1 )
{
wait(16);
}
HTTP_Results( 0, STR_Resultado );
HTTP_Free(0);
}
}