![]() |
Delphi 10.3 Rio: THTTPClient und Proxy; Status 407 authenticationrequired
Hallo *,
seit dem Umstieg von Delphi 10.2 (Tokyo) auf 10.3 (Rio) funktioniert der Zugriff auf WebServices via THTTPRIO nicht mehr, wenn zwischen meiner Anwendung (VCL, Win32/64) und dem Dienst ein Proxy mit Benutzeranmeldung steht. Auch der einfache Download einer Datei via THTTPClient.Get() funktioniert nicht mehr; es gibt einen StatusCode 407 = authenticationrequired. Stark vereinfachtes Code-Fragment:
Code:
Compiliert mit Delphi 10.2.3 funktioniert der Download einer Datei aus dem Internet (z.B. 'https://www.7-zip.org/a/7z1900.exe'), ohne dass ich mich an unserem Proxy anmelden muss.
LStream := TFileStream.Create(aFileName, fmCreate or fmShareExclusive);
LClient := THTTPClient.Create; ResCode := LClient.Get(aURL, LStream); if ResCode.StatusCode = 200 then ; // 200 = OK Derselbe Code compiliert mit Delphi 10.3.2 schlägt fehl mit Statuscode = 407: authenticationrequired Wie bringe ich THTTPClient dazu, wieder den im System/am User eingestellten Proxy zu verwenden? TIA Achim |
AW: Delphi 10.3 Rio: THTTPClient und Proxy; Status 407 authenticationrequired
|
AW: Delphi 10.3 Rio: THTTPClient und Proxy; Status 407 authenticationrequired
Danke für die schnelle Antwort; aber die bringt mich nicht wirklich weiter :-(
Muss ich jetzt wirklich die Proxy-Credentials des Anwenders selber ermitteln und an THTTPClient übergeben? Ich hatte gehofft, es gäbe da so etwas wie UseSystemProxy := True. Oder habe ich da was übersehen? Warum funktioniert der Code mit Delphi 10.2, aber nicht mehr mit 10.3?! Eine solcher "code breaking change" müsste doch irgendwo dokumentiert sein... |
AW: Delphi 10.3 Rio: THTTPClient und Proxy; Status 407 authenticationrequired
Weil von Indy auf etwas anderes gewechselt wurde.
![]() Sherlock |
AW: Delphi 10.3 Rio: THTTPClient und Proxy; Status 407 authenticationrequired
Zitat:
Wenn es nur um den einfachen Download einer Datei ginge, könnte ich ja wieder auf Indy oder WinINet umschwenken. Aber es geht um WebServices mit HTTPRIO, welches intern ja ebenfalls THTTPClient verwendet. |
AW: Delphi 10.3 Rio: THTTPClient und Proxy; Status 407 authenticationrequired
Zitat:
THTTPClientHelper.UseDefaultCredentials ist die gesuchte Einstellung.
Code:
Und für den SOAP-WebService muss der vom WSDL-Importer erzeugte Code ergänzt werden: LStream := TFileStream.Create(aFileName, fmCreate or fmShareExclusive); LClient := THTTPClient.Create; LClient.UseDefaultCredentials := True; // <-- added ResCode := LClient.Get(aURL, LStream); if ResCode.StatusCode = 200 then...
Code:
Gruß vom Teutoburger Wald,
uses
... Soap.SOAPHTTPTrans; // for THTTPReqRespHelper function GetIService(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): IService; var RIO: THTTPRIO; begin ... if HTTPRIO = nil then RIO := THTTPRIO.Create(nil) else RIO := HTTPRIO; try Result := (RIO as IService); if UseWSDL then begin RIO.WSDLLocation := Addr; RIO.Service := defSvc; RIO.Port := defPrt; end else RIO.URL := Addr; RIO.HTTPWebNode.UseDefaultCredentials := True; // <-- added finally if (Result = nil) and (HTTPRIO = nil) then RIO.Free; end; |
AW: Delphi 10.3 Rio: THTTPClient und Proxy; Status 407 authenticationrequired
Zitat:
anlegen der fordert, dass der WSDL importer/Generator diese Zeile in Zukunft mit in den Code schreibt? Danach bitte die Report Nummer hier melden, dann stimmen sicher einige dafür! Grüße aus Süddeutschland TurboMagic |
AW: Delphi 10.3 Rio: THTTPClient und Proxy; Status 407 authenticationrequired
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:17 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