Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   SOAP Webservice, erster Funktionsaufruf dauert ewig (https://www.delphipraxis.net/180295-soap-webservice-erster-funktionsaufruf-dauert-ewig.html)

Union 9. Mai 2014 15:07

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig
 
Mir deucht die URL ist falsch. Das scheint ja die für das WSDL zu sein. Hast Du den Import über das Netz gemacht oder aus einer lokalen Datei? Wie sehen denn die const aus (defWSDL, defURL ...)?

moe120 9. Mai 2014 15:53

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Union (Beitrag 1258445)
Mir deucht die URL ist falsch. Das scheint ja die für das WSDL zu sein. Hast Du den Import über das Netz gemacht oder aus einer lokalen Datei? Wie sehen denn die const aus (defWSDL, defURL ...)?


die sehen so aus:
Code:
function GetIvp_mobile_webservice(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): Ivp_mobile_webservice;
const
  defWSDL = 'C:\temp\Ivp_mobile_webservice.xml';
  defURL = 'http:// -ip rausgenommen- /cgi/vp_webservice.exe/soap/Ivp_mobile_webservice';
  defSvc = 'Ivp_mobile_webserviceservice';
  defPrt = 'Ivp_mobile_webservicePort';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
    if UseWSDL then
      Addr := defWSDL
    else
      Addr := defURL;
  end;
die defURL kann ich so wie sie da steht problemlos aufrufen, die sollte passen.
Die WSDL Definition hol ich mir per XML von dieser Adresse per Rechtsklick auf "WSDL" > Speichern unter (s. Screenshot), und die XML die dabei rauskommt importiere ich dann per Delphi wann immer sich mal was am Webservice geändert hat.

moe120 9. Mai 2014 15:59

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig
 
bin ein stück weiter, musste lediglich das /wsdl mit /soap ersetzen
Code:
//also entweder
Result:= getIvp_mobile_webservice(false, Url + '/soap/Ivp_mobile_webservice');
//oder
Result:= getIvp_mobile_webservice(true, Url + '/wsdl/Ivp_mobile_webservice');
//aber nicht
Result:= getIvp_mobile_webservice(false, Url + '/wsdl/Ivp_mobile_webservice');
mal schauen obs nun auf dem iphone schneller klappt

Union 9. Mai 2014 16:03

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig
 
Hauptsache Du benutzt kein ssl für iOS und SOAP client. Das müsstest Du Dir zuerst statisch einbinden.

moe120 9. Mai 2014 16:05

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig
 
jupp das wars :-) jetzt dauert der erste Funktionsaufruf auch nur noch 0,6 Sekunden.
Danke Union + allen anderen.

himitsu 11. Mai 2014 10:47

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig
 
Zitat:

Zitat von moe120 (Beitrag 1258316)
Code:
function get_webservice(url: String; use_ssl: Boolean): Ivp_mobile_webservice;
var tp_prefix: String;
begin

  if use_ssl
  then tp_prefix:= 'https://'
  else tp_prefix:= 'http://';

  if (AnsiPos('http://', AnsiLowerCase(url))<>1)
  and (AnsiPos('https://', AnsiLowerCase(url))<>1)
  then url:= tp_prefix + url;

  Result:= getIvp_mobile_webservice(true, Url + '/wsdl/Ivp_mobile_webservice');

end;

Mal als kleines Beispiel, aber da kann man auch locker vieles an Code einsparen, bzw. auch durch passende Funktionen den Code verständlicher und vorallem fehlerunanfälliger machen.
Pos/AnsiPos > Delphi-Referenz durchsuchenStartsStr und Hier im Forum suchenStartsText, wobei die 1 auch Probleme bereitet, dann in den neuen mobilen Compilern fangen Strings nicht mehr bei 1 an.
Delphi-Quellcode:
function get_webservice(url: String; use_ssl: Boolean): Ivp_mobile_webservice;
begin
  if not StartsText('http://', url) and not StartsText('https://', url) then
    url := IfThen(use_ssl, 'https://', 'http://') + url;

  Result := getIvp_mobile_webservice(True, url + '/wsdl/Ivp_mobile_webservice');
end;
PS: Wenn du zukünftig das [DELPHI]- statt dem [CODE]-Tag verwendest, dann läßt sich der Code auch einfacher lesen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr.
Seite 2 von 2     12   

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