Einzelnen Beitrag anzeigen

Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Delphi: SOAP zwischen 2 Rechnern

  Alt 24. Nov 2016, 10:48
das hier wäre ja die Funktion:
function GetIMyService(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): IMyService;
heißt ich müsst (system.false;192.168.x.y; nil) übergeben oder?:/
Ja, dass stimmt fast. Du kannst die Funktion verwenden wie sie ist, dann musst ud aber bei Addr -> "http://192.168.x.y:8080/wsdl/IMyService" übergeben (Vorausgesetzt: Du willst wsdl & der Port ist 8080.

Ich dachte mehr an sowas:
Delphi-Quellcode:
const
  defWSDL = 'http://%s:%d/wsdl/IMyService';
  defURL = 'http://%s:%d/soap/IMyService';
  defSvc = 'IMyServiceservice';
  defPrt = 'IMyServicePort';

function GetFullAdress(UseWSDL: Boolean; IPAdress: string; Port: Word): string;
begin
  if UseWSDL then result := defWSDL
             else result := defURL;
  result := Format(result, [IPAdress, Port]);
end;

function GetIMyService(UseWSDL: Boolean; IPAdress: string; Port: Word; HTTPRIO: THTTPRIO): IMyService;
begin
  result := GetIMyService(UseWSDL, GetFullAdress(UseWSDL, IPAdress, Port), HTTPRIO);
end;

function GetIMyService(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): IMyService;
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
    Addr := GetFullAdress(UseWSDL, 'localhost', 8080);
    //if UseWSDL then
    // Addr := defWSDL
    //else
    // Addr := defURL;
  end;
  if HTTPRIO = nil then
    RIO := THTTPRIO.Create(nil)
  else
    RIO := HTTPRIO;
  try
    Result := (RIO as IMyService);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
end;
Und wenn das funktionieren würde, den server und client auf einem rechner laufen zu lassen und mich mit einem zweiten Rechner mit der oben genannten Funktion zu verbinden, dann hab ich ja trotzdem noch keine Möglichkeit einzusehen, was Rechner 1 geschickt hat oder doch?
Das hängt vom Server ab. Du könntest entsprechende Funktionen etc. ja dort implementieren für die Clients.
Aber evtl. solltest du dein Problem nochmals etwas genauer beschreiben - also was möchtest du wirklich umsetzen?

Gruß, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat