|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2002
Messaggi: 581
|
[C] Client che interroga server web
Ho scritto un pgm client in c per provare a fare la richiesta di pagine web ad un server. Ovviamente la risposta sara' una o piu' stringhe con i tag html.
Il programma si connette al server, che e' un Apache in locale, ma non ottengo risposta. Ho visto che sia IE che Opera, quando fanno una rischiesta al server inviano un messaggio di questo tipo : Codice:
prova.html HTTP/1.1 User-Agent: Opera/6.05 (Windows XP; U) [en] Host: 127.0.0.1 Accept: text/html, image/png, image/jpeg, image/gif, image/x-xbitmap, */* Accept-Language: it, en Accept-Charset: windows-1252;q=1.0, utf-8;q=1.0, utf-16;q=1.0, iso-8859-1;q=0.6, *;q=0.1 Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0 Cache-Control: no-cache Connection: Keep-Alive, TE TE: deflate, gzip, chunked, identity, trailers ¦"' Codice:
prova.html HTTP/1.1 Altro dubbio : sono sulla starda giusta, ovvero, quello che sto cercando di fare si puo' fare ? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Il comando minimo è :
GET prova.html HTTP/1.1\r\n Host: 127.0.0.1\r\n\r\n |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Aug 2002
Messaggi: 581
|
Quindi deduco che quel che sto facendo puo' funzionare...con le dovute modifiche.
Non credevo di dover aggiungere anche "GET" nella costruzione del messaggio da inviare. Infatti in un pgm che mi fa da server per le prove (tanto per capire come funziona la cosa, a parte Apache) facendo il display della stringa che ricevevo dal client, avevo inteso che GET lo aggiungevano le routine dei socket, perche' nel messaggio che inviavo dal client non mettevo GET, pur ritrovandomelo nel buffer letto dal server. Questa sera a casa provo. Grazie. Ciao. |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Aug 2002
Messaggi: 581
|
Quote:
Un'altra domanda, ma il valore del parametro Host deve essere l'IP del client che fa la richiesta ? Lo chiedo perche' ora che funziona, vorrei provare ad inoltrare la richiesta ad un "vero" server web tramite internet. Altro dubbio : non rischio di fare casini e ritrovarmi in qualche pasticcio legale? Il mio intento e' quello di prelevare pagine web senza un browser per poi analizzare il contenuto con programmi autonomi senza ricorrere ai controlli di VB o altro. Ciao e grazie. |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Se non ne modifichi il contenuto o non usi le informazioni contenute al di fuori delle pagine non dovresti avere problemi...
Host è la parte scritta nell'URL dopo http... Può essere o meno un indirizzo ip... |
![]() |
![]() |
![]() |
#6 | ||
Senior Member
Iscritto dal: Aug 2002
Messaggi: 581
|
Quote:
Quote:
Nell stringa GET prova.html HTTP/1.1\r\nHost: 127.0.0.1\r\n\r\n dove c'e' "Host" ci va lindirizzo del mio client(com'e' visto dalla rete, in questo caso internet) oppure come mi pare di capire e' l'indirizzo del sito dove invio la richiesta della pagina web? Es. GET prova.html HTTP/1.1\r\nHost:www.google.it\r\n\r\n ? Ultima modifica di vici_1 : 24-02-2004 alle 13:21. |
||
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
No...se te scrivi http://www.pippo.com/pippo.html in Host ci va www.pippo.com...
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Aug 2002
Messaggi: 581
|
Funziona.
Grazie dell'aiuto. Ciao. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:40.