Récupérer la source d'une page dans une variable String par API


Contenu du snippet

Uses WinINet; 
Function DownloadSourceAsString(Const Url: String): String;  
Var 
  hOpen : HINTERNET;  
  hOpenUrl : HINTERNET; 
  sReadBuffer : Array[0..1023] Of ansichar;  
  lNumberOfBytesRead : Cardinal; 
Begin  
  Result := ''; 
  { Démarre une session Internet } 
  hOpen :=  InternetOpen(PChar(Application.ExeName), INTERNET_OPEN_TYPE_PRECONFIG, '', '', 0); 
  If hOpen =  Nil  Then 
  Begin  
    ShowMessage(SysErrorMessage(GetLastError)); 
    exit;  
  End; 
  Try  
    { se connecte à l'URL }  
    hOpenUrl := InternetOpenUrl(hOpen, PChar(Url), '', 0, INTERNET_FLAG_RELOAD,  0); 
    Try 
      If  hOpenUrl <> Nil  Then 
      Begin  
        { récupère le texte }  
        Repeat 
          sReadBuffer  := ''; 
          InternetReadFile(hOpenUrl,  @sReadBuffer, Length(sReadBuffer), lNumberOfBytesRead); 
          Result :=  Result + String(sReadBuffer);  
        Until lNumberOfBytesRead = 0; 
      End 
      Else  
      Begin  
        ShowMessage(SysErrorMessage(GetLastError));  
        exit; 
      End; 
    Finally 
      If hOpenUrl <> Nil  Then 
        InternetCloseHandle(hOpenUrl);  
    End; 
  Finally 
    InternetCloseHandle(hOpen);  
  End; 
End; 
Procedure  Tfrm_Main.btn_GoClick(Sender: TObject); 
Begin 
  lbl_MyIP.Caption := Format('Mon IP : %s',[DownloadSourceAsString('http://www.whatismyip.org')]); 
  { Fonctionne aussi avec un fichier txt }  
  mmo_Result.Lines.Text := DownloadSourceAsString('http://skin-ogame.hebfree.org/World_Of_Stargate/texte_evolution.txt');  
End; 


Compatibilité : Delphi 5

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.