GSHTTP v1.3 (Cscript) working on liteCfree

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:
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!
Posted By: Oxy

Re: GSHTTP v1.3 (Cscript) working on liteCfree - 01/31/10 20:10

Thats good.
Maybe you try to contact Peacekeeper, so he
can upload the Lite/C header to the plugin page.

GSTNet is an Alternative, but it unfortunately
crashes sometimes.
Posted By: nfs42

Re: GSHTTP v1.3 (Cscript) working on liteCfree - 02/02/10 16:19

crashes ???
GSTNet_HTTPGet bug is fixed since 0.7.5
Posted By: Damocles_

Re: GSHTTP v1.3 (Cscript) working on liteCfree - 02/03/10 10:56

BTW, I had a dll crash in the GSTNet JewelDrop Demo on my Vista computer.It did start once, but crashed the other times..
I can send you details when Im on that computer again.

Posted By: nfs42

Re: GSHTTP v1.3 (Cscript) working on liteCfree - 02/03/10 15:32

please start with -diag and GSTNet_Debug(100);
Posted By: Damocles_

Re: GSHTTP v1.3 (Cscript) working on liteCfree - 02/03/10 18:50

I try it as soon as im back at this computer.
Posted By: Damocles_

Re: GSHTTP v1.3 (Cscript) working on liteCfree - 02/13/10 17:38

Hi nfs42, send you a PM
© 2024 lite-C Forums