Einzelnen Beitrag anzeigen

DennisR

Registriert seit: 22. Dez 2020
4 Beiträge
 
Delphi 2006 Professional
 
#1

HTTPRIO SOAP Header/Request ändern D2006

  Alt 22. Dez 2020, 15:55
Delphi-Version: 5
Hallo zusammen.
Bin gerade dabei einen lokalen WebService anzusprechen und via XML die Daten hin und her zu schubsen.

Verbindung usw. klappt alles, zumindest wenn ich den XML-Text per Hand schreibe und als WideString übergebe.
Das Problem habe ich, wenn ich den durch Delphi erstellen Quellcode zur WSDL benutze:
Der Text des per Hand geschriebenen und automatisch erstellten weicht eigentlich nur in den ersten paar Zeilen ab, alles danach ist fast identisch.

Über das OnBeforeExecute wollte ich nun den Request stumpf per StringReplace abändern.
Delphi-Quellcode:
procedure Tdmt.htprMainBeforeExecute(const MethodName: string;
  var SOAPRequest: WideString);
var
  test: WideString;
begin
  test := SOAPRequest;
  test := StringReplace(test,WideString('<s:Header xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> + #13#10'),'');
  test := StringReplace(test,WideString('<To s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://localhost:1200/38f9edad-b272-4649-917e-1180b4c5207e</To>' + #13#10),'');
  test := StringReplace(test,WideString('<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://tempuri.org/IPOS/Sign</Action>' + #13#10),'');
  test := StringReplace(test,WideString('</s:Header>' + #13#10),'');
  test := StringReplace(test,WideString('<data'),'<tem:data');
  test := StringReplace(test,WideString('</data'),'</tem:data');
  SOAPRequest := test;
end;
Wenn ich mir während des Debuggens den Text anschaue, passt er auch. Wenn ich in die Konsole meines WebService schaue, kommt es aber so an, als ob ich überhaupt keine Änderungen gemacht hätte.

Könnte mir hier evtl. jemand auf die Sprünge helfen?
  Mit Zitat antworten Zitat