Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Mit HTTP und SSL zugriff auf einen Webservice über Indy 10 (https://www.delphipraxis.net/117986-mit-http-und-ssl-zugriff-auf-einen-webservice-ueber-indy-10-a.html)

niko022 29. Jul 2008 15:15


Mit HTTP und SSL zugriff auf einen Webservice über Indy 10
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo

ich hätte eine Frage bzgl. einer HTTP/SSL Verbindung zu einem Webservice. Ich verwende Delphi 7 und
habe durch recherche herausgefunden das solchen Dinge ganz gut mit den Indy Komponenten zu handeln
sind.

Ich müßte laut der Beschreibung von dem Webservice eine Anfrage in Form einer XML Datei an den
Server (Webservice) senden mit Hilfe von HTTP und SSL und würde dann als Antwort eine XML Datei mit
den gewünschten Daten zurück bekommen.

Habe mir dann die neueste Version von Indy heruntergeladen und installiert (Indy 10). Danach habe ich
versucht mich ein wenig mit den Indy Komponenten vertraut zu machen und rumgespielt.

Habe dazu einen kleinen Bespiel mit einem Server (IdTCPServer) und Client (IdTCPClient) erstellt.
Beim drücken eines Buttons im Client baut er eine Verbindung zu der Server Komponente auf und
übermittelt dort einen String in ein Memo Feld.

Das kleine Bsp. funktioniert soweit ganz gut. Jetzt habe ich weiter recherchiert und versucht hier im
Forum bzw. im www herauszubekommen wie man das ganze lösen kann bzw. was für Komponenten von Indy 10
benötigt werden. Bin aber irgendwie nicht schlüssig geworden wie das funktionieren soll.

Habe dann aber auf mehreren Seiten irgendwas entdeckt die was mit einer Komponenten Namens
IdConnectionInterceptOpenSSL gemacht haben. Diese sollte sich unter Indy I/O befinden, aber leider
bei Indy 10 nicht.

Bei mir gibt es unter Indy 10 nur =>IdIOHandlerStack, IdServerIOHandlerStack,
IdServerIOHandlerSSLOpenSSL, IdSSLIOHandlerSocketOpenSSL

Meine Frage geht das mit Indy 10 einen Webservice in dieser Art anzusprechen und wenn ja wie geht es?
Habe auch schon in ein paar Beiträgen gelesen das Indy 10 nicht so stabil laufen soll und noch einige
Bugs hat. Habe hier aus dem Forum von einem Kollegen den Link für Indy 9 bekommen. Eignet sich Indy 9
evtl. besser zum lösen dieses Problems.

Bin über jede Hilfe dankbar.

niko022 30. Jul 2008 07:41

Re: Mit HTTP und SSL zugriff auf einen Webservice über Indy
 
Weis niemand wie man so was realisieren kann?

würde mich über jeden Tipp bzw. Antwort sehr freun.

gsh 30. Jul 2008 08:13

Re: Mit HTTP und SSL zugriff auf einen Webservice über Indy
 
also wenn ich dich richtig verstehe dann meinst du mit webservices einen HTTP-server oder?
außerdem willst du ssl verwenden also HTTPS.

Dann nimm doch die idHTTP und verwenden als IOHandler einen SSL fähigen.
Damit müsste es theoretisch funktionieren (nicht getestet nur vermutet)

Viel Glück

niko022 30. Jul 2008 09:26

Re: Mit HTTP und SSL zugriff auf einen Webservice über Indy
 
Vielen Dank erstmal für die Antwort.

ja stimmt. Ich muß einen Webserver ansprechen und soll Ihm eine XML Datei übermitteln.

z.b. https://SERVER/WEBSERVICE

Nach der übermittlung der XML Datei soll er eine Antwort auch wieder im XML Format zurückliefern.

Gibt es irgendwo ein Bsp. zu dem beschriebenen Aufbau?

niko022 30. Jul 2008 09:33

Re: Mit HTTP und SSL zugriff auf einen Webservice über Indy
 
Ein Bsp. Code den ich gefunden habe (Visual Studio).
Code:
...

' create the object that manages the communication
Dim oXMLHttp As XMLHTTP
Set oXMLHttp = New XMLHTTP

' prepare the HTTP POST request
oXMLHttp.open "POST", "https://www.server.com/path", False
oXMLHttp.setRequestHeader "Content-Type", _

"application/x-www-form-urlencoded"
' send the request
oXMLHttp.send requestString

' server's response will be available in oXMLHttp.responseXML
oXMLHttp.responseXML

...

niko022 30. Jul 2008 10:43

Re: Mit HTTP und SSL zugriff auf einen Webservice über Indy
 
Weis jemand wie man das Bsp. aus Visual Studio in Delphi verwenden kann?

franktron 30. Jul 2008 12:00

Re: Mit HTTP und SSL zugriff auf einen Webservice über Indy
 
Das ist doch ganz einfach

Delphi-Quellcode:
var
   Stream   : TStream;
   Buffer   : String;
begin
   FQuery.Clear;
   FResponse.Clear;
   FQuery.Add('<?xml version="1.0" encoding="UTF-8"?>');
   FQuery.Add('REST XML');
   Stream:=TMemoryStream.Create;
   try
      FQuery.SaveToStream(Stream);
      Buffer:=FURL+'/'+FKomponente+'/'+FFunktion+'?format=xml';
      Stream.Position:=0;
      try
         FResponse.Text:=FIdHTTP.Post(Buffer,Stream);
      except

      End;
   finally
      Stream.Free;
   End;

niko022 30. Jul 2008 12:29

Re: Mit HTTP und SSL zugriff auf einen Webservice über Indy
 
Vielen Dank erstmal.

was für Objecte sind FResponse, FIdHTTP? Funktioniert das alles mit https?
Gibt es eine Get Methode für das Empfangen der Rückantwort vom Server?

franktron 30. Jul 2008 14:13

Re: Mit HTTP und SSL zugriff auf einen Webservice über Indy
 
FQuery: TStringList;
FResponse: TStringList;
FIdHTTP : TIdHTTP;


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:09 Uhr.

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