Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi UrlDownloadToFile mit einem Proxy? (https://www.delphipraxis.net/141348-urldownloadtofile-mit-einem-proxy.html)

AlexII 7. Okt 2009 15:45


UrlDownloadToFile mit einem Proxy?
 
Hallo,

ich lade wie folgt eine Datei runter:

Delphi-Quellcode:
...
Datei := 'www.meineseite.de/Datei.txt';
Ziel := PChar(UserAppDataDir + AppDataRootDir + AppDataProjectDir + '\Datei.txt');
UrlDownloadToFile(nil, Datei, Ziel, 0, nil);
...
Nun meine Frage - wie geht das wenn ein Proxy dazwischen steht? Etwa so? :gruebel:

Delphi-Quellcode:
...
Datei := 'server:port@www.meineseite.de/Datei.txt';
...

holliesoft 7. Okt 2009 15:51

Re: UrlDownloadToFile mit einem Proxy?
 
Zitat:

Zitat von AlexII
Hallo,

ich lade wie folgt eine Datei runter:

Delphi-Quellcode:
...
Datei := 'www.meineseite.de/Datei.txt';
Ziel := PChar(UserAppDataDir + AppDataRootDir + AppDataProjectDir + '\Datei.txt');
UrlDownloadToFile(nil, Datei, Ziel, 0, nil);
...
Nun meine Frage - wie geht das wenn ein Proxy dazwischen steht? Etwa so? :gruebel:

Delphi-Quellcode:
...
Datei := 'server:port@www.meineseite.de/Datei.txt';
...

Hmm, also hier in einer Anwendung von mir wird automatisch die Proxyeinstellung aus dem Internet Explorer verwendet. Da muss ich nichts zusätzlich angeben...

AlexII 7. Okt 2009 15:53

Re: UrlDownloadToFile mit einem Proxy?
 
Und wenn man z.B. Firefox verwendet? :gruebel:

himitsu 7. Okt 2009 15:55

Re: UrlDownloadToFile mit einem Proxy?
 
Dann wird dennoch die Einstellung vom IE verwendet, da URLDownloadToFile über die Schnittstellen des IE läuft.

DeddyH 7. Okt 2009 15:57

Re: UrlDownloadToFile mit einem Proxy?
 
Man kann ja Firefox verwenden, aber trotzdem die Proxy-Einstellungen im IE vornehmen ;). Ansonsten könntest Du noch auf Indy, ICS, Synapse etc. ausweichen.

AlexII 7. Okt 2009 16:16

Re: UrlDownloadToFile mit einem Proxy?
 
Zitat:

Zitat von DeddyH
Man kann ja Firefox verwenden, aber trotzdem die Proxy-Einstellungen im IE vornehmen ;). Ansonsten könntest Du noch auf Indy, ICS, Synapse etc. ausweichen.

Mein Programm wird ja nicht nur bei mir laufen, sondern zig mal wo anders... deswegen will ich das so schreiben, dass es sofort läuft. Und wie geht das mit Indy?

Andreas L. 7. Okt 2009 16:42

Re: UrlDownloadToFile mit einem Proxy?
 
Zitat:

Zitat von AlexII
Zitat:

Zitat von DeddyH
Man kann ja Firefox verwenden, aber trotzdem die Proxy-Einstellungen im IE vornehmen ;). Ansonsten könntest Du noch auf Indy, ICS, Synapse etc. ausweichen.

Mein Programm wird ja nicht nur bei mir laufen, sondern zig mal wo anders... deswegen will ich das so schreiben, dass es sofort läuft. Und wie geht das mit Indy?

Delphi-Quellcode:
uses
  .., IdHTTP;

...

var
  http: TIdHTTP;
  fs: TFileStream;
begin
  fs := Tfilestream.create('zeildatei', fmCreate);
  try
    http := TIdHTTp.Create(nil);
    try
      http.Request.ProxyPassword := '**';
      //etc.
      http.Get('http://domain.de/datei.txt', fs);
    finally
      http.free;
    end;
  finally
    fs.free;
  end;
end;

DeddyH 7. Okt 2009 16:47

Re: UrlDownloadToFile mit einem Proxy?
 
Dann müsste man aber auch die Möglichkeit bieten, die Proxy-Konfiguration manuell einzugeben. Gab es bei IdHTTP nicht auch Proxyparams?

Andreas L. 7. Okt 2009 16:48

Re: UrlDownloadToFile mit einem Proxy?
 
Zitat:

Zitat von DeddyH
Dann müsste man aber auch die Möglichkeit bieten, die Proxy-Konfiguration manuell einzugeben. Gab es bei IdHTTP nicht auch Proxyparams?

Delphi-Quellcode:
http.Request.ProxyPassword := '**';
Oder wie meinst du das?

Sherlock 7. Okt 2009 16:59

Re: UrlDownloadToFile mit einem Proxy?
 
also mit einem Passwort ist es doch bei einem Proxy nicht getan. Man sollte zumindest irgendwo angeben können wie denn der Proxy heisst. ;)

Sherlock

himitsu 7. Okt 2009 17:04

Re: UrlDownloadToFile mit einem Proxy?
 
schau mal, was da noch so alles wie http.Request.Proxy... klingt, bzw. so anfängt.

Andreas L. 7. Okt 2009 17:30

Re: UrlDownloadToFile mit einem Proxy?
 
Zitat:

Zitat von Sherlock
also mit einem Passwort ist es doch bei einem Proxy nicht getan. Man sollte zumindest irgendwo angeben können wie denn der Proxy heisst. ;)

Sherlock

Dachte man könnte sich herleiten das es noch mehr Eigenschaft gibt die mit http.Request.Proxy beginnen.

http.Request.ProxyUserName
http.Request.ProxyPassword
http.Request.ProxyPort
http.Request.ProxyHost oder http.Request.ProxyServer (bin mir nicht sicher...)

Lannes 7. Okt 2009 19:30

Re: UrlDownloadToFile mit einem Proxy?
 
Hallo,

hab mal in meinen älteren Codes gesucht.
Der hat mit einem Proxy funktioniert, den ich aber später nicht mehr benötigt habe und auskommentiert wurde.
Delphi-Quellcode:
function LoadFromURL(url:string;var Data:string):Boolean;
const BufferSize = 256;
var  Buffer   : array[1..BufferSize] of char;
      BufferLen : DWORD;
      ok       : Boolean;
      hSession : HInternet;
      hHttp    : HInternet;
      hUrl     : HInternet;
begin
  result:=false;
  data:='';
  try           //ProxyServer = proxy-....
    hSession := InternetOpen({PChar('Agent')}nil,
                             {INTERNET_OPEN_TYPE_PROXY}INTERNET_OPEN_TYPE_PRECONFIG,
                             {PChar('proxy-.....')}nil,
                             {PChar('passwort')}nil,0);
    if hSession = nil then
      begin
      Showmessage('Kann nicht auf WinInit.DLL zugreifen');
      exit;
      end;
    hHttp := InternetConnect(hSession,'http://...',
                             INTERNET_DEFAULT_HTTP_PORT,nil,nil,INTERNET_SERVICE_HTTP,0,0);
    if hHttp = nil then
      begin
      Showmessage('Es besteht keine Verbindung zum "Intranet"');
      exit;
      end;
    hURL := InternetOpenURL(hSession,PChar(URL),nil,0,INTERNET_FLAG_RELOAD,0);
    if hURL = nil then
      begin
      exit;
      end
      except
        exit;
      end;
  try
    if hURL <> nil then
      begin
      repeat
        ok := InternetReadFile(hURL, @Buffer, SizeOf(buffer), BufferLen);
        if not ok then
          begin
          data:='';
          result:=false;
          exit;
          end;
        data:=data+copy(buffer,1,bufferlen);
      until bufferlen<SizeOf(Buffer);
      Result:=True;
      end;
  finally
    InternetCloseHandle(hURL);
    InternetCloseHandle(hSession);
    InternetCloseHandle(hHttp);
  end;
end;

DeddyH 7. Okt 2009 19:36

Re: UrlDownloadToFile mit einem Proxy?
 
WinInet greift aber AFAIK auch auf den IE zurück, oder?

Lannes 7. Okt 2009 19:47

Re: UrlDownloadToFile mit einem Proxy?
 
Hallo,

in dem Zusammenhang :gruebel:
müsste ich mal meinen alten Rechner aus dem Keller holen, den reaktivieren und den IE aus dem alten System killen, und dann testen.

himitsu 7. Okt 2009 19:49

Re: UrlDownloadToFile mit einem Proxy?
 
soweit ich es denke zu wissen, greift WinInet (InternetConnect und Co.) auch auf den IE zu.

bzw. ist es eher andersrum, der IE greift wohl darauf zu.

DeddyH 7. Okt 2009 19:52

Re: UrlDownloadToFile mit einem Proxy?
 
Ich meinte damit, dass WinInet die Proxy-Einstellungen auch aus dem IE ausliest.

AlexII 9. Okt 2009 19:57

Re: UrlDownloadToFile mit einem Proxy?
 
:)

himitsu 9. Okt 2009 20:27

Re: UrlDownloadToFile mit einem Proxy?
 
Also die Dateien laufen über die BrowserCache ... will man etwas neu/direkt runterladen, dann hat man ein winziges Problemchen.

DeddyH 9. Okt 2009 20:33

Re: UrlDownloadToFile mit einem Proxy?
 
Es sei denn, man löscht vorher.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz