Einzelnen Beitrag anzeigen

hyype

Registriert seit: 5. Nov 2008
97 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Webservice und Webservice-Client (SOAP)

  Alt 1. Dez 2008, 15:18
Ich bin mal so frei, die "Lösung" hier zum Besten zu geben:
Und zwar kann man mit SOAP nur strukturierte Daten senden, Binärdaten nicht.
D.h. nachdem man die Datei in einen Stream geladen hat, kann man diesen nicht direkt verschicken, sondern muss ihn zunächst in einen Base64String umwandeln. Dieser String kann dann als Übergabeparameter für eine auf dem Server deklarierte (und über wsdl-Datei dem Client zur Verfügung gestellte) function/procedure übergeben werden. Da diese function/procedure auf dem Server ausgeführt wird, kann man dort eine TMemoryString-Variable einführen (das geht nämlich, nur als Übergabeparameter geht es nicht) und unter Verwendung anderer Funktionen den Base64String umwandeln und den MemoryStream schließlich als Datei abspeichern.
Delphi-Quellcode:
procedure TTestService.FileReceiver(s:string); stdcall;
var
  ms:TMemoryStream;
begin
  ms:=TMemoryStream.Create;
  ms:=Base64toStream(s);
  ms.SaveToFile(..);
end;
  Mit Zitat antworten Zitat