![]() |
HTTP Basic Authentication bei SOAP
Hallo,
beim Zugriff auf eine API (Webservice) wird eine HTTP Basic Authentication über SSL benötigt. Hier ein Ausschnitt aus einem mitgelieferten Beispiel in PHP:
Code:
Sehe ich das richtig dass hier die HTTP-Version auf 1.1, der Benutzername + PW für die HTTP Basic Authentication gesetzt werden und die Überprüfung des SSL-Zertifikats ausgeschaltet wird?
require_once('SOAP/Client.php');
$client = new SOAP_client('https://a.b.domain.net/namespace/'); // Protocol version must be HTTP 1.1. $client->setOpt('curl', CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); // curl comes with a number of predefined certifiers it recognizes. We use Thawte, which is not // a part of this set. There should be a better way of dealing with this, see curl documentation. // we here just don't verify the peer. $client->setOpt('curl', CURLOPT_SSL_VERIFYPEER, FALSE); // username and password $client->setOpt('curl', CURLOPT_USERPWD, "Benutzername:Passwort"); Kommen wir zu meinem Versuch in Delphi :o Ich habe über den WSDL-Import eine neue Unit erstellt. Der Aufruf sieht so aus:
Delphi-Quellcode:
Dabei hat mir
var
rio: THttpRio; procedure TfrmMain.btnTestClick(Sender: TObject); var WebService: WebServiceSoap; begin rio := THTTPRIO.Create(self); rio.HTTPWebNode.UserName := 'Benutzername'; rio.HTTPWebNode.Password := 'Passwort'; rio.HTTPWebNode.OnBeforePost := self.HttpRioHttpWebNodeBeforePost; WebService:= GetWebServiceSoap(False, '', rio); mmoLog.Lines.Add(WebService.WebServiceAction('0').SqlXml); end; procedure TfrmMain.HttpRioHttpWebNodeBeforePost(const HTTPReqResp: THTTPReqResp; Data: Pointer); begin if not InternetSetOption(Data, INTERNET_OPTION_HTTP_VERSION, PChar('HTTP/1.1'), // stimmt das?! System.Length('HTTP/1.1')) then ShowMessage(SysErrorMessage(GetLastError)); if not InternetSetOption(Data, INTERNET_OPTION_USERNAME, PChar(rio.HTTPWebNode.UserName), System.Length(rio.HTTPWebNode.UserName)) then ShowMessage(SysErrorMessage(GetLastError)); if not InternetSetOption(Data, INTERNET_OPTION_PASSWORD, PChar(rio.HTTPWebNode.Password), System.Length (rio.HTTPWebNode.Password)) then ShowMessage(SysErrorMessage(GetLastError)); end; ![]() Ich denke, HTTP Basic Authentication habe ich abgehackt, bei der HTTP-Version bin ich mir nicht sicher, ob ich das richtig gemacht habe. Fehlt nur noch die SSL-Zertifikat-Überprüfung-Abschaltung :mrgreen: Jemand ne Idee, wie ich das abschalten kann? Es kommt übrigens diese Fehlermeldung wenn ich versuche das auszuführen: Zitat:
Dominik |
Re: HTTP Basic Authentication bei SOAP
Wenn ihr mir wenigstens sagen könntet ob ich auf dem richtigen Weg bin wäre das eine Hilfe.
Liegt es wirklich nur an SSL? Habe ich die HTTP-Version richtig angegeben? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:27 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