Posted By: txesmi
GSHTTP v1.3 (Cscript) working on liteCfree - 01/31/10 11:45
Hi friends,
i've adapted peacekeepers' GSHTTP v1.3 wiki plugin to liteC. That's a usefull tool!!
English instructions into original resources.
http.h file:
Usage example:
prueba.php content:
Use real STRING structs in function calls!!
Salud!
i've adapted peacekeepers' GSHTTP v1.3 wiki plugin to liteC. That's a usefull tool!!
English instructions into original resources.
http.h file:
Code:
//********************************************************************************************************************************** // 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); } }
Usage example:
Code:
#include <acknex.h> #include <http.h> function main () { STRING* WEB_Partidabierta = "http://partidabierta.com/prueba.php"; STRING* STR_Datos_Post = "nombre=Txesmi"; STRING* STR_Resultado = "#128"; Pagina_Post ( WEB_Partidabierta, STR_Datos_Post, STR_Resultado ); wait_for ( Pagina_Post ); error ( STR_Resultado ); sys_exit ( NULL ); }
prueba.php content:
Code:
<?php echo 'hola, '; if ( $_POST['nombre'] != "" ) echo $_POST['nombre']; else echo 'Anónimo'; ?>
Use real STRING structs in function calls!!
Salud!