AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke SOAP Webservice, erster Funktionsaufruf dauert ewig
Thema durchsuchen
Ansicht
Themen-Optionen

SOAP Webservice, erster Funktionsaufruf dauert ewig

Ein Thema von moe120 · begonnen am 8. Mai 2014 · letzter Beitrag vom 11. Mai 2014
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#11

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig

  Alt 9. Mai 2014, 16:07
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 ...)?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
moe120

Registriert seit: 1. Okt 2012
Ort: Radeberg
34 Beiträge
 
Delphi XE6 Enterprise
 
#12

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig

  Alt 9. Mai 2014, 16:53
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.
Miniaturansicht angehängter Grafiken
wsdl_2.png  
  Mit Zitat antworten Zitat
moe120

Registriert seit: 1. Okt 2012
Ort: Radeberg
34 Beiträge
 
Delphi XE6 Enterprise
 
#13

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig

  Alt 9. Mai 2014, 16:59
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
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#14

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig

  Alt 9. Mai 2014, 17:03
Hauptsache Du benutzt kein ssl für iOS und SOAP client. Das müsstest Du Dir zuerst statisch einbinden.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
moe120

Registriert seit: 1. Okt 2012
Ort: Radeberg
34 Beiträge
 
Delphi XE6 Enterprise
 
#15

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig

  Alt 9. Mai 2014, 17:05
jupp das wars jetzt dauert der erste Funktionsaufruf auch nur noch 0,6 Sekunden.
Danke Union + allen anderen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.054 Beiträge
 
Delphi 12 Athens
 
#16

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig

  Alt 11. Mai 2014, 11:47
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz