Avatar billede martin_andersen Nybegynder
16. august 2002 - 10:31 Der er 1 kommentar og
1 løsning

HTTP 1.1 Problem med at opretholde forbindelse til server

Jeg skal lave en funktion til at hente en/flere filer
ned fra en bestemt server.

Jeg har prøvet at oprette en socket-forbindelse og har også delvist haft succes med at hente filerne.... Men det er ikke altid at hele filen kommer ned. Det lader til at forbindelsen bliver brudt af serveren.

Jeg har brugt en TWinSocketStream til at hente data med.

Er der nogen derude der har erfaring med ovenstående eller evt. har et kode eksempel...
Avatar billede stoney Nybegynder
16. august 2002 - 11:09 #1
Tilføj wininet i uses

function GetInetFile
(const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var
  hSession, hURL: HInternet;
  Buffer: array[1..BufferSize] of Byte;
  BufferLen: DWORD;
  f: File;
  sAppName: string;
begin
Result:=False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName),
                INTERNET_OPEN_TYPE_PRECONFIG,
              nil, nil, 0);
try
  hURL := InternetOpenURL(hSession,
            PChar(fileURL),
            nil,0,0,0);
  try
  AssignFile(f, FileName);
  Rewrite(f,1);
  repeat
    InternetReadFile(hURL, @Buffer,
                    SizeOf(Buffer), BufferLen);
    BlockWrite(f, Buffer, BufferLen)
  until BufferLen = 0;
  CloseFile(f);
  Result:=True;
  finally
  InternetCloseHandle(hURL)
  end
finally
  InternetCloseHandle(hSession)
end
end;

procedure TForm1.Button1Click(Sender: TObject);
var FileOnNet, LocalFileName: string ;
begin
FileOnNet:= \'http://someurl.com/file.zip\';
LocalFileName:=\'downloadedfile.zip\';

if GetInetFile(FileOnNet,LocalFileName)=True then
  ShowMessage(\'Filen er downloaded\')
else
  ShowMessage(\'Fejl i download\')

end;
----------------------

ellers brug Indy

Stoney
Avatar billede martin_andersen Nybegynder
16. august 2002 - 11:37 #2
mange tak...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester