Delphi-PRAXiS
Seite 6 von 9   « Erste     456 78     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Webservice (https://www.delphipraxis.net/196134-webservice.html)

TiGü 4. Mai 2018 08:17

AW: Webservice
 
Zitat:

Zitat von InschenierSB (Beitrag 1401216)
Zitat:

Zitat von TiGü (Beitrag 1401131)
Erst mal dieses Tutorial durcharbeiten, dann werden wir konkret:
https://www.delphi-treff.de/tutorial...ctpascal/dlls/


Also das Tutorial habe ich durch und auch mit dem entsprechenden Beispiel, das ist ja garnicht soooo anpruchsvoll. Aber ich glaube "lustig" wird es erst den Webservice und das WSDL-Dokument einzubinden...

Bevor Elrond weiter den Teufel an die Wand malt und DLL mit DDL verwechselt: Weißt du denn JETZT schon, welche Informationen du von dem komplexen WebService benötigst? Sind es nur eine handvoll Daten oder brauchst du so gut wie alle möglichen Informationen aller Responses?

InschenierSB 4. Mai 2018 10:31

AW: Webservice
 
Zitat:

Zitat von TiGü (Beitrag 1401253)
Zitat:

Zitat von InschenierSB (Beitrag 1401216)
Zitat:

Zitat von TiGü (Beitrag 1401131)
Erst mal dieses Tutorial durcharbeiten, dann werden wir konkret:
https://www.delphi-treff.de/tutorial...ctpascal/dlls/


Also das Tutorial habe ich durch und auch mit dem entsprechenden Beispiel, das ist ja garnicht soooo anpruchsvoll. Aber ich glaube "lustig" wird es erst den Webservice und das WSDL-Dokument einzubinden...

Bevor Elrond weiter den Teufel an die Wand malt und DLL mit DDL verwechselt: Weißt du denn JETZT schon, welche Informationen du von dem komplexen WebService benötigst? Sind es nur eine handvoll Daten oder brauchst du so gut wie alle möglichen Informationen aller Responses?

Hallo Tilo,
ach deswegen, habe mich schon gewundert was nun DDL schon wieder sein soll?!
Also später werde ich wahrscheinlich alle Respones benötigen. Nun geht es aber in erster Linie mal darum eine Antwort mit mindestens 1 Parameter zu bekommen und das in Delphi 6.
Wenn du mich da etwas unterstützen könntest.... Gibt dann auch wieder was weißt schon...

TiGü 4. Mai 2018 11:07

AW: Webservice
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich würde den Ansatz mit der DLL weiterverfolgen.

Minimalbeispiel:

InschenierSB 4. Mai 2018 14:51

AW: Webservice
 
Zitat:

Zitat von TiGü (Beitrag 1401281)
Ich würde den Ansatz mit der DLL weiterverfolgen.

Minimalbeispiel:

Ich werde es jetzt doch über Indy-HTTP versuchen, vielleicht hast du ein paar Tipps oder Tutorials dazu, habe schon angefangen den Header aufzubauen.

TiGü 4. Mai 2018 15:48

AW: Webservice
 
Hier zum Beispiel:
https://www.delphi-treff.de/tutorial...internet/indy/

Du musst dich aber auch mit XML und den Umgang damit in Delphi auskennen, wenn du das umsetzen willst.

InschenierSB 7. Mai 2018 08:48

AW: Webservice
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von TiGü (Beitrag 1401307)
Hier zum Beispiel:
https://www.delphi-treff.de/tutorial...internet/indy/

Du musst dich aber auch mit XML und den Umgang damit in Delphi auskennen, wenn du das umsetzen willst.

Hallo Tilo,
Vielleicht kannst du mir einen kleinen Tipp geben.
Habe einen Webservice gefunden, welcher mir auf Anfrage der Bankleitzahlen entsprechende Daten der jeweiligen Bank gibt.
Im SOAP-UI passt soweit alles. Ich weiß jetzt nur nicht wie ich den Request in Delphi formulieren soll?! Also in meinem Beispiel die Anfrage der BLZ.
Ich hänge auch nochmal einen Screenshot vom SOAP-UI an.
Danke schonmal.

Hier der CODE:
Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, StdCtrls;

type
  TForm1 = class(TForm)
    IdHTTP1: TIdHTTP;
    Memo1: TMemo;
    Button1: TButton;
    Memo2: TMemo;
   // procedure IdHTTP1Connected(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//SB procedure TForm1.IdHTTP1Connected(Sender: TObject);

var
Stream:TMemoryStream;
Url: String;
URL_:String;
List: TStrings;
HTTP_Version: TStringStream;
Result: String;
 Test:TIdHeaderInfo;
 procedure TForm1.Button1Click(Sender: TObject);
begin
  IdHTTP1:=TIdHTTP.Create(nil);
  HTTP_Version:= TStringStream.Create('HTTP/1.1');
  List:=TStringlist.Create;
  List.Add('axis2');
  List.Add('services');
  List.Add('BLZService');


  Url:= 'http://thomas-bayer.com/axis2/services/BLZService';

  // IdHTTP1.ProtocolVersion:='1.1';
 IdHTTP1.Request.ContentType:='text/xml;charset=UTF-8';
 IdHTTP1.Request.Connection:='Keep-Alive';
 IdHTTP1.Host:= 'thomas-bayer.com';
 IdHTTP1.Request.UserAgent:= 'Apache-HttpClient/4.1.1 (java 1.5)';
 IdHTTP1.Request.ContentLength:= 280;
// IdHHTP1.Request.
 IdHTTP1.Request.AcceptEncoding:= 'gzip,deflate';
 IdHTTP1.Post('ttp://thomas-bayer.com',List,HTTP_Version);
 IdHTTP1.Port:=80;
 IdHTTP1.Get(URL_,Stream);
// Stream.LoadFromStream();
 memo1.Lines.Add(IdHTTP1.Response.Server);
 //Memo2.text:=IdHTTP1.Post('http://thomas-bayer.com/axis2/services/BLZService',List,HTTP_Version);
end;

Elrond 7. Mai 2018 10:08

AW: Webservice
 
Schnell zusammen gebastelt und es klappt auch:
Siehe dazu:
http://docwiki.embarcadero.com/CodeE...TP_Get_(Delphi)
https://www.delphipraxis.net/184029-...en-fehler.html

Code:
procedure TForm1.FormCreate(Sender: TObject);
var
  HTTP: TIdHTTP;
  Body: TStringList;
  Response: String;
  IdLogDebug: TIdLogDebug;
  Stream: TMemoryStream;
begin
  try
    IdLogDebug := TIdLogDebug.Create;
    IdLogDebug.Active := true;
    Stream := TMemoryStream.Create;
    HTTP := TIdHTTP.Create;

    HTTP.Request.ContentType := 'application/soap+xml;charset=UTF-8';

    HTTP.Request.AcceptEncoding := 'gzip,deflate';
    HTTP.Intercept := IdLogDebug;
    Body := TStringList.Create;
    Body.Add('<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:blz="http://thomas-bayer.com/blz/">');
    Body.Add('<soap:Header/>');
    Body.Add('<soap:Body>');
    Body.Add('<blz:getBank>');
    Body.Add('<blz:blz>50010517</blz:blz>');
    Body.Add('</blz:getBank>');
    Body.Add('</soap:Body>');
    Body.Add('</soap:Envelope>');
    Body.SaveToStream(Stream);

    Response := HTTP.Post('http://thomas-bayer.com/axis2/services/BLZService', Stream);

    HTTP.Destroy;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end;
PS: Das Schnipsel sollte man nicht 1 zu 1 übernehmen, ich bin mir recht sicher das hier einiges nicht korrekt freigegeben wird, ganz zu schweigen vom style.

Elrond 7. Mai 2018 10:52

AW: Webservice
 
So am Rande, auch indy kann SOAP:
http://www.indyproject.org/SOAP/

InschenierSB 7. Mai 2018 10:53

AW: Webservice
 
Kein Thema Elrond,
habe e soweit schon hinbekommen. Was noch nicht so ganz klappt ist die Response auszugeben.
Im Wireshark habe ich eine Aufzeichnung parallel laufen, da sehe ich das die Antwort korrekt gesendet wird.
Mein Problem ist der Post. Der möchte drei Parameter übergeben bekommen, und wenn ich die Response zuweise meckert der Compiler wegen inkompatibler Daten.

Nehme mal an dass das wieder an der steinalten Delphi-Version (6) liegt. Aber ich muss diese verwenden.
Ich habe mal einen Screenhot vom Code angehangen.

InschenierSB 7. Mai 2018 10:54

AW: Webservice
 
Liste der Anhänge anzeigen (Anzahl: 1)
Man sollte den Screen-Shot auch hochladen.....


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr.
Seite 6 von 9   « Erste     456 78     Letzte »    

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