Hallo
vielleicht hilft es dir, mal zu vergleichen, was als
soap-envelope übertragen wird.
Ich würde mal SoapUI oder soapscope probieren, damit kannst Du den Webserice testen, ohne ein Stückchen code zu schreiben. einfach
wsdl aufrufen und du kannst die Methoden einfach ausprobieren. Mit beiden Programmen kannst du Den Request und die Response als
xml anzeigen lassen und mal mit deinem Delphi-programm vergleichen:
Du kannst eine httprio-Komponente mit auf die Form zeihen und deinen Aufruf in
test := GetMyWebService(false,'',HttpRio)
ändern.
in der httprio-Kompo hast du dann 2 Ereignisse onbeforeexecute und onafterexecute
Delphi-Quellcode:
procedure TForm_xyz.HTTPRIODebugAfterExecute(const MethodName: string; SOAPResponse: TStream);
Var sl:Tstrings;
begin
sl:=TStringList.Create;
try
sl.LoadFromStream(SOAPResponse);
sl.SaveToFile('blub:\'+'SoapResponse.xml');
finally
sl.free;
end;
end;
Delphi-Quellcode:
procedure TForm_xyz.HTTPRIODebugBeforeExecute(const MethodName: string; var SOAPRequest: WideString);
Var sl:Tstrings;
begin
sl:=TStringList.Create;
try
sl.Text:=SOAPRequest;
sl.SaveToFile('blub:\'+'Soaprequest.xml');
finally
sl.free;
end;
end;
ich habe teilweise das Problem, das irgendwelche Schemas nicht richtig gesetzt werden. Ich muß immer den request anpassen, weil ich keine andere Lösung weiß.
Gruß Frank