AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SoapRequest manipulieren

Ein Thema von BerTa · begonnen am 26. Apr 2017 · letzter Beitrag vom 27. Apr 2017
 
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.395 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: SoapRequest manipulieren

  Alt 26. Apr 2017, 11:26
Jup,

schau dir mal die implementierung von TRio.DoBeforeExecute an - da wird aus dem Request ein Stringstream erzeugt, dann in einen String umkopiert und an FOnBeforeExecute übergeben und anschließend wird das Ergebnis verworfen!

Das ist ein heftiger Bug, der leider auch nicht mit den Backports der Änderungen von Delphi 2007 korrigiert wurde.

Hier hilft nur, eine eigenen THttpRio Ableitung, in der habe ich dann zudem anstelle der alten Signatur gleich die Signatur von aktuellen Delphiversionen übernommen (sprich arbeite gleich mit dem Stream weiter und kopiere das Zeugs nicht erst noch in einen String um):

Delphi-Quellcode:
  TBeforeExecuteStreamEvent = procedure(const MethodName: string; SOAPRequest: TStream) of object;

  THTTPRIO_Stream=class(THTTPRIO)
  private
    FOnBeforeExecuteStream: TBeforeExecuteStreamEvent;
    procedure SetOnBeforeExecuteStream(const Value: TBeforeExecuteStreamEvent);
  protected
    procedure DoBeforeExecute(const MethodName: string; Request: TStream); override;
    procedure DoAfterExecute(const MethodName: string; Response: TStream); override;
  public
    property OnBeforeExecuteStream: TBeforeExecuteStreamEvent read FOnBeforeExecuteStream write SetOnBeforeExecuteStream;
    procedure AfterConstruction; override;

  end;
Du musst dann halt beim Aufruf deines Service eine eigene Instanz der Rio-Klasse übergeben....
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:33 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