1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48:
| uses winInet; {$R *.dfm}
function GetInetFileAsString(const fileURL: string): string; const C_BufferSize = 4096; var sAppName: string; hSession, hURL: HInternet; Buffer: array[0..C_BufferSize] of Byte; BufferLen: DWORD; strHeader: String; strPageContent: TStringStream; AUrl:String; begin Result := ''; if Pos('http://',Lowercase(fileURL))=0 then AUrl := 'http://' + fileURL else AUrl := fileURL;
sAppName := ExtractFileName(Application.ExeName); hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try strHeader := 'Accept-Charset: utf-8'#13#10; hURL := InternetOpenURL(hSession, PChar(AURL), PChar(strHeader), Length(strHeader), 0, 0); try strPageContent := TStringStream.Create('', TEncoding.Default); try BufferLen := 1; while BufferLen >0 do begin If InternetReadFile(hURL, @Buffer[0], SizeOf(Buffer), BufferLen) then if BufferLen > 0 then strPageContent.WriteBuffer(Buffer[0], BufferLen); end; Result := strPageContent.DataString; finally strPageContent.Free; end; finally InternetCloseHandle(hURL); end finally InternetCloseHandle(hSession); end; end; procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Text := GetInetFileAsString('http://www.google.de') end; |