PDA

Visualizza la versione completa : [C++] Inviare richiesta HTTP a pagina Web (Windows)


Nos9110
09-10-2011, 03:08
Ciao a tutti. ho creato una semplice pagina php alla quale inviando una richiesta get di nome "numero", inserisce il risultato all'interno di un database.
esempio

http://miosito.com/pagina.php?cmd=insert&numero=556
inserisce il numero 556 all'interno del database.
invece con

http://miosito.com/pagina.php?cmd=read&id=1
mi restituisce il numero della riga numero 1.
Ora vorrei creare un programmino in C++ per poter inserire il mio numero, e poterlo leggere.
Ho cercato varie librerie; da winsock (e quindi operare a mano sul protocollo HTTP), a Boost Asio, ma non ci ho capito un granchè. sono sicuro che sia una domanda abbastanza banale. qualcuno potrebbe aiutarmi nel capire come fare?
grazie 1000 a tutti.

oregon
09-10-2011, 10:27
Non hai detto su quale sistema lavori ma per Windows leggi

http://msdn.microsoft.com/en-us/library/aa383630(VS.85).aspx

Nos9110
10-10-2011, 04:15
Grazie 1000 per la risposta. Ho scordato di specificare che lavoro sotto Windows, ma lo davo per scontato dato che ho scritto "..da winsock..".
Comunque sia vedo che la soluzione da te proposta prevede comunque una vera e propria "interazione" con il protocollo HTTP.
Conosci per caso qualche libreria che abbia qualche funzione del tipo,
apri_pagina("http://miosito.com?richiesta=send&valore="MIOVALOREVARIABILE);
finendo qui la storia per quanto riguarda l'invio e
risultato_pagina("http://miosito.com?richiesta=return&valore=all");
che mi riporti in una stringa o comunque in un determinato oggetto tutto il codice della pagina?
Una sorta di raccolta di funzioni-"browser prefabbricato" senza però la trasformazione in grafica dell'html :)
magari ho chiesto troppo, ma chissà... in informatica non si sa mai.
Grazie comunque della risposta :)

MItaly
10-10-2011, 12:35
Per questo genere di cose è forse più comoda la roba di urlmon, in particolare ti può essere utile la URLOpenBlockingStream (http://msdn.microsoft.com/en-us/library/ms775127%28v=vs.85%29.aspx); qui (http://forum.html.it/forum/showthread.php?s=&postid=11543199#post11543199) un esempio.
L'alternativa è usare una libreria portabile come libcURL, che potrebbe fare al caso tuo.

Loading