![]() |
SOAP und HTTPS
Hallo,
ich habe einen SOAP-Client geschrieben. Funktioniert auch wunderbar, nur...die Kommunikation mit dem Server sollte über HTTPS laufen. Kann mir jemand helfen??? Wie kann ich das realisieren? Gruss, Greg |
Re: SOAP und HTTPS
Hi,
nun sind ja schon 2 Jahre vergangen ;-) Weiß vielleicht jetzt jemand, wie man das zu bewerkstelligen hat? Viele Grüße, Kristin |
Re: SOAP und HTTPS
Und wieder sind 2 Jahre vergangen.... ;) Ich weiß: neues Thema -> neuer Thread und die alten nicht mehr ausgraben. Ich fand es nur witzig, dass ziemlich genau wieder 2 Jahre dazwischen liegen ;)
Und heute bin ich es, der vor diesem Problem steht. Hat inzwischen irgendjemand Erfahrung mit SOAP und HTTPS, bzw. irgendetwas in der Richtung schon mal realisiert? Die Probleme fangen ja schon beim Import der WSDL-Datei an, weil Delphi von HTTP ausgeht. Any ideas? Gruß |
Re: SOAP und HTTPS
Wenn es um den reinen Datentransport über HTTPS geht, könnte dies helfen:
![]() |
Re: SOAP und HTTPS
Guter Vorschlag, allerdings würde dies voraussetzen, dass die MS XML Core Services installiert sind/werden. Man könnte zwar regsrv im silent mode laufen lassen und so dem User die DLLs geheim unterjubeln, ob das aber so in Ordnung geht, muss ich erst absprechen.
Danke für den Tipp. |
Re: SOAP und HTTPS
für INDY9 gibt es keine aktuelle openssl.dll (und so weit ich weiss, auch keine Source-Code für die alte, denn wer glaubt, es handelte sich um den Standard-Quellcode, der irrt)
ich kenne nur ein ![]() INDY10 will man nicht... ansonsten: ![]() Gruss Hinnack |
Re: SOAP und HTTPS
gibt es eigentlich einen guten Grund, warum du SOAP statt XMLRPC machst?
Gruss Hinnack |
Re: SOAP und HTTPS
Hallo
Zitat:
Wo liegt dein Problem, in der Authentifizierung? du brauchst eine HttpRio-kompo auf der Form oder erzeugst eine im Code. mit
Delphi-Quellcode:
gibst du dann die Authentifizierungsdaten an, die Konvertierung in das spezielle Format geht von alleine.
FRio.HTTPWebNode.UserName:=xyz;
FRio.HTTPWebNode.Password:=***; Wenn du deinen Webservice dann aufrufst, mußt du den eigenen Rio übergeben. Gruß Frank |
Re: SOAP und HTTPS
Hallo zusammen,
dank euch für die Antworten. @hinnack: Auf Indy wollte ich eigentlich nicht ausweichen. Hört man zuviel schlechtes darüber, außerdem will ich eigentlich gar nicht so tief einsteigen. XMLRPC? Kenn ich jetzt nur aus der Java-Ecke. Ich schau mal, was sich da mit Delphi machen lässt. @keldorn: Ich habe hier "nur" ein Delphi 7 Enterprise. Ja, Problem liegt in der Authentifizierung. Ich habe bis jetzt aber auch noch nie gegen den Testserver gearbeitet. Anscheinend ist der Webserver IP-geschützt, so dass ich mit meiner dynamisch vergebenen IP gar nicht drauf komme. Aber ich werde heute einen Testzugang anfordern, wenn es sein muss, gehe ich halt über TeamViewer auf den Rechner, dessen IP freigeschalten ist. Anscheinend arbeitet der Webservice auch noch mit "self-signed"-Zertifikaten. Ich bin auf dem Gebiet leider ziemlich noob. Falls jemand einen Testwebservice kennt, der offen zugänglich ist, über HTTPS angesprochen werden will und zudem noch mit diesen ominösen self-signed-Zertifikaten arbeitet, bin ich dankbar, wenn er mir die Addy geben könnte. Danke und Gruß |
Re: SOAP und HTTPS
Zitat:
|
Re: SOAP und HTTPS
Die Soappatches sind auch für D7, soweit ich mich errinnern kann. Ohne die kommst du sicher sowieso nicht weit, weil dir z.B. dynam. arrays nicht richtig importiert werden und du dann völlig auf dem Schlauch stehst.
Authentifizierung: so gehts zumindestens bei mir problemlos, allerdings mußte der Zugang auch bei mir erst eingerichtet+freigeschaltet werden, das wurde von der "anderen" Seite auch am Anfang vergessen :-). Der wsdl-Import sollte aber trotzdem gehen, da hatte ich keine Probs. Noch ein Tipp: Verwende so oder so trotzdem den eigenen Rio, nutze die Ereignisse afterexecute und beforeexecute und speichere Dir den soaprequest und soapresponse als xml-Datei, damit du siehst was rausgeht und wieder ankommt, zur Not kannst du dort auch noch Dinge gradebiegen. gugg mal nach dem "Soapscope" von Mindreef, ein absolutes Traumteil. Damit kannst du einen Webservice, ohne was zu programmieren, komplett durchtesten, es werden dir alle Methoden aufgelistet und du kannst auch die Daten eingeben und dir die Antwort anschauen. Die Authentifizierungsdaten kannst du auch mit angeben, ist allerdings etwas versteckt. Die jeweiligen Daten lassen sich als xml anzeigen und das kannst du dann mit deinen gespeicherten Daten vom Rio vergleichen, was da das Soapscope anders macht. Das hat mir damals sehr sehr sehr geholfen, weil ich vom Thema Webservice auch nicht wirklich den Plan hatte bzw. habe ;-). mit Test-Webservices kann Ich Dir leider nicht weiterhelfen, im Inet gibts zwar einige Seiten (z.B. ![]() Gruß Frank |
Re: SOAP und HTTPS
Zitat:
Immerhin bin ich schon mal auf dem Server drauf, ich versuche es im Moment so, wie shmia es vorgeschlagen hat und setze mein SOAP-XML-Gedöns halt einfach manuell ab. Ist mir so eigentlich am liebsten, weil ich dadurch am meisten Kontrolle habe - zumindest bilde ich mir das ein... ;-) Dahinter steckt ein Java/Axis-Webservice, der mir ja nicht unbedingt unbekannt ist, allerdings verweigert er mir die Daten, weil er ständig meint
XML-Code:
Also anscheinend setze ich die ganze Zeit Kommandos ab, die er nicht entwirren kann.
<soapenv:Fault>
<faultcode>soapenv:Server.userException</faultcode> <faultstring>org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.</faultstring> </soapenv:Fault> Ich werde morgen mal probieren, das ganze dann doch auf WSDL-Basis abzuwickeln. Mal sehen, ob ich mit dem Import und der daraus resultierenden Interface-Gurkerei mehr Glück habe... ;-) Zumindest könnte ich dann mal sehen, wie die Aufrufkommandos aussehen, wenn sie richtig abgesetzt werden. Nur schade, dass man ohne Sniffer keine Chance hat zu sehen, was denn nun wirklich an XML an den Server geschickt wird. Jaja, die Transparenz...Fluch und Segen mal wieder...;-) Gruß und thx for response |
Re: SOAP und HTTPS
also der große Vorteil von webservices ist für mich ja grade, das man durch den import der wsdl ja überhaupt keine weitere Arbeit hat, die ganzen Interfaces werden (den neuen Importer vorausgesetzt) importiert und du kannst sofort loslegen.
Ich weiß ja nicht, wie umfangreich dein Webservice genau aufgebaut hat, aber den, den ich ansprechen muß, wäre mir für eine manuelle Übergabe viel zu riesig. Zitat:
Zitat:
|
Re: SOAP und HTTPS
Hi
oder nimm tcptrace/tcpproxy und leite deine Anfrage darüber um. hat mir sehr geholfen. Ist zum Debuggen genial Gruss |
Re: SOAP und HTTPS
So, endlich mal Zeit zu antworten... ;-)
Ich habe es jetzt letztlich mit shmias Vorschlag hinbekommen, wie ich wollte. @Keldorn: Die Idee mit dem eigenen RIO war genial. Ich konnte über "AfterExecute" herausfinden, welche Daten Delphi an den Webservice schickt. Diese habe ich einfach aufgegriffen, ein wenig umgestaltet, in einen SOAP-Envelope gepackt und über IXMLHTTPRequest (Method=POST) abgeschickt. Funktioniert hervorragend. Das Problem mit dem MS XML Core Services hat sich auch erledigt. Ich arbeite auf einem Server innerhalb von Middleware, so dass sich das Installationsproblem erst gar nicht ergibt (bzw. ich installiere ein einziges Mal und gut ist). Mit SOAPScope hatte ich leider kein Glück. Wahrscheinlich haperte es an der Zertifizierung. Keine Ahnung, denn SOAPScope lieferte mir nur eine Error-Meldung, ohne genau darauf einzugehen, was ihm denn jetzt eigentlich nicht gepasst hat. Was die generelle Strategie betrifft, habe ich die WSDL nicht importiert. Erstens brauche ich gar nicht alle Funktionen des Services, und zweitens hatte auch Delphi Schwierigkeiten mit der Zertifizierung. Über IXMLHTTPRequest habe ich viel mehr Kontrolle. Ist zwar ein wenig mehr Schreibarbeit, aber die nehme ich gerne in Kauf. Thx @ll nochmal und Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:19 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