Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi SOAP HTTPRIO asynchroner Methodenaufruf (https://www.delphipraxis.net/152214-soap-httprio-asynchroner-methodenaufruf.html)

gmc616 15. Jun 2010 13:14

SOAP HTTPRIO asynchroner Methodenaufruf
 
Hallo DP,

Ich möchte einen WebService abfragen.
Aus der WSDL-Datei habe ich mittels Delphi WSDL-Importer eine Klasse erzeugt und frage das ganze per THTTPRIO ab.
Status- und Versionabfragen funktionieren problemlos.

Nur wenn ich Daten holen möchte - und das können ne ganze Menge sein - bekomme ich einen TimeOut.
In der Doku zu dem WebService steht, mal solle die Daten asynchron abrufen.
Der Beispielcode, geschrieben in C#, zeigt einen Aufruf ala AsyncValues(...) .
So eine Methode gibt es aber der WSDL-Definition nicht und auch die erzeugte Klasse besitzt keine solche Methode.

Wie kann man einen WebService asynchron abfragen?

Danke und Gruß
gmmc

Koolance 13. Sep 2012 07:47

AW: SOAP HTTPRIO asynchroner Methodenaufruf
 
Hallo,
ich habe gerade das gleiche Problem (mit Delphi 2006), mein nicht funktionierender Ansatz den ich im Web gefunden habe ist der hier:

Code:
procedure TGdvConnectForm.HTTPRIO1HTTPWebNode1BeforePost(
  const HTTPReqResp: THTTPReqResp; Data: Pointer);
var timeout1,timeout2,timeout3:integer;
begin
//  HTTPReqResp.ConnectTimeout:=500000;
//  HTTPReqResp.SendTimeout:=500000;
//  HTTPReqResp.ReceiveTimeout:=500000;
  timeout1:=1000000;
  timeout2:=1000000;
  timeout3:=1000000;
  InternetSetOption(Data, INTERNET_OPTION_RECEIVE_TIMEOUT, Pointer(@timeout1), SizeOf(timeout1));
  InternetSetOption(Data, INTERNET_OPTION_CONNECT_TIMEOUT, Pointer(@timeout2), SizeOf(timeout2));
  InternetSetOption(Data, INTERNET_OPTION_SEND_TIMEOUT, Pointer(@timeout3), SizeOf(timeout3));

end;
Es gibt wohl einen Windows Bug durch den sich der Timeout nicht setzen lässt.
Bist du vielleicht schon weiter?

Mavarik 13. Sep 2012 10:16

AW: SOAP HTTPRIO asynchroner Methodenaufruf
 
Was nennst Du viel?

1KB
1MB
1GB

Ich übertrage von kleinen Request bis hin zu einem kompletten Datenbackupdate ohne Probleme...

Mavarik

Koolance 13. Sep 2012 10:36

AW: SOAP HTTPRIO asynchroner Methodenaufruf
 
Bei mir sind es PDF's wahrscheinlichh 300-500kb, allerings ist die Internetgeschwindigkeit aller Anwender nicht gerade toll (gibt glaube ich sogar noch einen mit ISDN) und ich sitze auch an einer 2mbit Lwitung fpr 50 Leut, kann das also prima testen und kriege immer weiter Timeouts :(

Daher brauche ich einen lange Timeout die 10 Sekunden die Standarsmäßig hinterlegt sind sind zu wenig.

Habe gerade mal probiert den Aufruf in einen Thread zu packen weil es im folgendem Link empfohlen wird, half aber auch nicht.
http://www.delphigroups.info/2/10/344289.html

Welches Delphi nutzt du und wie hast du den Timout geändert?

Mavarik 13. Sep 2012 10:44

AW: SOAP HTTPRIO asynchroner Methodenaufruf
 
Ich nehme Delphi 2007...

Habe es NIE gebraucht den Timeout zu verändern und übertrage durchaus größere Datenmengen...

Mavarik

Koolance 13. Sep 2012 10:45

AW: SOAP HTTPRIO asynchroner Methodenaufruf
 
Du Glücklicher :?

Mavarik 13. Sep 2012 10:46

AW: SOAP HTTPRIO asynchroner Methodenaufruf
 
Zitat:

Zitat von Koolance (Beitrag 1182730)
Du Glücklicher :?

LOL...

Ich denke Dein Problem liegt ganz wo anders...

Mavarik

Koolance 13. Sep 2012 10:57

AW: SOAP HTTPRIO asynchroner Methodenaufruf
 
Naja, die Testfunktion vom Webservice in der keien Datei übertreg wird funktioniert und der Entwickler von Ihm sagt bei ihm dauert es etwas 20 Sekunden.
Die Fehlermeldung ist eigentlich auch recht eindeutig:
Code:
Erste Gelegenheit für Exception bei $7C812AEB. Exception-Klasse ESOAPHTTPException mit Meldung 'The operation timed out - URL:https://**zensiert***.asmx - SOAPAction:http://tempuri.org/RechnungsAnfrage'. Prozess ConnectProject.exe (10480)
Vielleicht liegt es am HTTPS, wobei ich mir das eigentlich nicht vorstellen kann.

Mavarik 13. Sep 2012 10:59

AW: SOAP HTTPRIO asynchroner Methodenaufruf
 
OK https hab ich nocht nicht versucht...

Zeig mal Deinen Remoteable Record

Mavarik

Koolance 13. Sep 2012 11:03

AW: SOAP HTTPRIO asynchroner Methodenaufruf
 
Sry, aber was ist ein Remoteable Record?
Meinst du die XML die versand wird?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 Uhr.
Seite 1 von 2  1 2      

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