Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Delphi - IdHttp GET o POST?
Forum - Delphi - IdHttp GET o POST?

Avatar
smanettone83 (Normal User)
Pro


Messaggi: 124
Iscritto: 20/10/2010

Segnala al moderatore
Postato alle 0:03
Lunedì, 18/04/2011
ciao a tutti. volevo sapere come è possibile estrarre alcuni dati interessanti da un sito internet tramite il componente IDHTTP. esempio:

su questo sito visualizzo il mio ip:

www.ilmioip.it

Innanzi tutto chiedo in questi casi per ottenere la stringa che ci interessa in questo caso l'ip è necessario usare il metodo GET o POST?

Grazie a tutti


Il sapere appartiene al mondo
PM
Avatar
a_butta (Member)
Expert


Messaggi: 578
Iscritto: 16/03/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 21:12
Lunedì, 18/04/2011
Se ti serve ricavare solo l'indirizzo ip, puoi semplicemente usare questo sito:
http://www.whatismyip.com/automation/n09230945.asp

e utilizzi l' IdHTTP come segue:
Codice sorgente - presumibilmente Delphi

  1. var
  2.   IP: String;
  3. {
  4.    ****
  5. }
  6.  
  7.   IdHttp1.Request.Host:= 'http://www.whatismyip.com';
  8.   IP := IdHttp1.Get('http://www.whatismyip.com/automation/n09230945.asp');



PM
Avatar
Goblin (Member)
Expert


Messaggi: 340
Iscritto: 02/02/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 21:37
Lunedì, 18/04/2011
1 soluzione è quella di a_butta, la seconda, identica, ma un po' più complessa in quanto scarichi tutta la pagina e dopo devi costruire un parser html, oppure estrarre TAG conosciuti, cmq ti posto un piccolo esempio molto spartano, il tutto è compatto basta chiamare la funzione e ritorna l'IP dal sito che hai dato tu ... ci si può lavorare con l'aggiunta di componenti per il parser html (vedi jedi), io ho fatto in modo diretto per tagliare corto :blush:

Function GetMyIP: String;
Var oHttp: TIdHTTP;
    sStream: TStringStream ;
    nPos: Integer;
begin
  sStream := TStringStream.Create;
  oHttp := TIdHTTP.Create(Nil);
  Result := 'Error';
  Screen.Cursor := crHourGlass;
  try
    Try
      oHttp.Get('http://www.ilmioip.it', sStream);  // tutta la pagina è nello stream
      nPos :=Pos('var IP_CLIENT =', sStream.DataString);
      if nPos>0 then
        Result:= copy(sStream.DataString,npos+17,14);
    Except
      ShowMessage('gestioneerrori');
    End;
  Finally
    freeandnil(sStream);
    freeandnil(oHttp);
    Screen.Cursor := crDefault;
  end;
end;

quello del'ip era solo un esempio... cmq avevo trovato anche io una soluzione simile... credevo si potesse fare in maniera piu pulita senza andare a ricercare le stringe in tutto il codice html... grazie cmq ;) - smanettone83 - 19/04/11 15:32


Ibis et redibis non morieris in bello
PM
Avatar
DragoHacker (Normal User)
Newbie


Messaggi: 8
Iscritto: 08/10/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 19:04
Giovedì, 20/10/2011
Nuova funzione per il chimera reverse? XD
Ma perchè non aggiorni anche il chimera classico?


Datemi un Punto D'appoggio e solleverò il mondo..
PM