Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Indy - Proxy - Fehlermeldung ohne Inhalt (https://www.delphipraxis.net/175110-indy-proxy-fehlermeldung-ohne-inhalt.html)

Metschu 30. Mai 2013 20:14

Indy - Proxy - Fehlermeldung ohne Inhalt
 
Hallo zusammen,

ich hab ein Tool mit der Indy-Komponente erstellt, was auf eine Website zugreifen soll. Hier klappt alles, nur in der Firma bekomme ich die Fehlermeldung wegen Fehlerhafter Proxyverbindung.

Zu Testzwecken hab ich nun ein Prog geschrieben, um die Verbindung zu Testen. Gebe ich keine Proxydaten ein, bekomme ich wieder die besagte Fehlermeldung.
Gebe ich die Proxydaten ein, bekomme ich eine Fehlermeldung (Messagebox mit dem Roten "X"), aber ohne Titel und Text :cry:

Jemand ne Idee, wie ich herausfinden kann, was mir das Prog damit mitteilen möchte?

Anbei mal der Quelltext. Das hab ich mir mal alles aus der Suche zu dem Problem zusammengestellt. Vielleicht liegt auch hier der Fehler?

Delphi-Quellcode:
// Weißt Indy die Proxydaten zu
procedure TForm1.Button1Click(Sender: TObject);
begin
 idhttp1.ProxyParams.ProxyServer:=server.Text;
 idhttp1.ProxyParams.ProxyPort:=StrToInt(proxy.Text);
end;


// Ruft eine HP auf und schreibt den Quelltext in ein Memo
// Fehlermeldungen entstehen ab hier.
// Fehlermeldung Ohne Text erst, wenn Button1Click ausgeführt wurde
procedure TForm1.Button3Click(Sender: TObject);
begin
 memo1.Lines.Add(idhttp1.get(url.text))
end;

// Methode 1
procedure TForm1.IdHTTP1ProxyAuthorization(Sender: TObject;
  Authentication: TIdAuthentication; var Handled: Boolean);
begin
 if Checkbox3.Checked
  then begin;
   Authentication.Username := Username.Text;
   Authentication.Password := passwort.Text;
  end;
end;

// Methode 2
procedure TForm1.IdHTTPMainSelectProxyAuthorization(Sender: TObject; var AuthenticationClass: TIdAuthenticationClass; AuthInfo: TIdHeaderList);
begin
if checkbox2.Checked
 then begin;
  // First check for NTLM authentication, as you do not need to set username and password because Indy will automatically
  // handle passing your Windows Domain username and password to the proxy server
  if (pos('Proxy-Authenticate: NTLM', IdHTTP1.Response.RawHeaders.Text)>0)
    then begin
           IdHTTP1.ProxyParams.BasicAuthentication := false;
           AuthenticationClass := TIdSSPINTLMAuthentication;
         end
    else begin
           //Next check for Basic
           if (pos('Proxy-Authenticate: Basic', IdHTTP1.Response.RawHeaders.Text)>0)
             then begin
                    AuthenticationClass := TIdBasicAuthentication;
                    IdHTTP1.ProxyParams.BasicAuthentication := true;
                   end
             else begin
                    // Then Digest
                    if (pos('Proxy-Authenticate: Digest', IdHTTP1.Response.RawHeaders.Text)>0)
                      then AuthenticationClass := TIdDigestAuthentication
                  end;
           //.------------
           IdHTTP1.ProxyParams.ProxyUsername := username.Text;
           IdHTTP1.ProxyParams.ProxyPassword := Passwort.Text;
         end;
end;
end;


// Wahl der SSL Methode
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
 case radiogroup1.ItemIndex of
  0: form1.IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:=sslvsslV2;
  1: form1.IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:=sslvsslV3;
  2: form1.IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:=sslvsslV23;
  3: form1.IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:=sslvTLSV1
 end;

Metschu 2. Jun 2013 11:44

AW: Indy - Proxy - Fehlermeldung ohne Inhalt
 
Hm, keiner einen Tip, wie ich rausbekomme, was mir das Prog mit der leeren Fehlermeldung sagen möchte ?

Metschu 10. Jun 2013 19:17

AW: Indy - Proxy - Fehlermeldung ohne Inhalt
 
Liste der Anhänge anzeigen (Anzahl: 1)
Konnte heute entlich mal ein ScreenShot machen.

Wie gesagt, das kommt immer, wenn ich auf den Button3 "Lade Website" klicke (idhttp.get(...)).
Zuhause klappts.

Metschu 24. Jun 2013 21:06

AW: Indy - Proxy - Fehlermeldung ohne Inhalt
 
Liste der Anhänge anzeigen (Anzahl: 2)
Kann mir einer mal ein gefallen tun und das Prog (siehe Anhang) bei sich testen?
Ich hab nur einen Rechner, an dem ich das mit den Proxy Einstellungen testen kann, und an dem kommt die meldung ohne Inhalt :(

Wenn ich den Inhalt der Meldung nicht rausbekomme, dann wenigstens mal ein Versuch, obs am Netzwerk/PC oder Programm liegt...

im Zip-Ordner "Quelltext" fehlen die erforderlichen .dll Dateien, diese sind aber im Zip-Ordner "Exe Datei"

Vielen Dank schonmal.

Gruß

Torsten

nahpets 24. Jun 2013 21:31

AW: Indy - Proxy - Fehlermeldung ohne Inhalt
 
bekomme weder mit noch ohne Proxy eine Fehlermeldung.

Je nach Proxy kann aber auch mal ein
Code:
---------------------------
Project1
---------------------------
Die Verbindung wurde erfolgreich geschlossen.
---------------------------
OK  
---------------------------
kommen, eventuell ist ja bei Dir genau diese Meldung ohne Text?

Fang mal bitte die Exception EIdConnClosedGracefully ab, um festzustellen, ob diese eventuell ohne Fehlermeldung kommt.

HTTP solltest Du eventuell wieder freigeben.

Delphi-Quellcode:
 Memo2.Lines.Add('*** nach Proxy Check ***');
 Memo1.Text:=HTTP.get(url.Text);;
 Memo2.Lines.Add('*** nach http.get ***');
 http.Free;

Metschu 25. Jun 2013 18:47

AW: Indy - Proxy - Fehlermeldung ohne Inhalt
 
Vielen dank für den Test und die Infos.

Wenn der "Get" Befehl ausgeführt wird, dann soll Webseiteninhalt in das unteren Memo geschrieben werden. Das klappt bei mir ohne Proxy.
Auf einem Rechner mit Proxy kommt diese Fehlermeldung, aber im zweiten Memo wird nichts.

Was ich schon festgestellt habe, das der Fehler aus der "ProxyAuthorization" Procedure kommen muss, da der LogText am Anfang der Procedure ins erste Memo geschrieben wird, der Logtext nach der Procedure aber nicht mehr.

Das mit der Exception teste ich dann auch nochmal.

Gruß

Torsten


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:05 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-2025 by Thomas Breitkreuz