Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Webservice Zugriff per Android (XE5) (https://www.delphipraxis.net/176867-webservice-zugriff-per-android-xe5.html)

thLeh 1. Okt 2013 11:41

Webservice Zugriff per Android (XE5)
 
Hallo,

Ich baue grade an einer Cross-Plattform App, welche einen Webservice konsumiert. Unter Windows funktioniert es auch wunderbar. Die WSDL Datei wurde zur Entwicklungszeit über den WSDL-Wizard eingebunden und angesprochen. Beim Android wird eine Exception gerissen:

Delphi-Quellcode:
try
  res := port.getXXXXXX(Parameter);
except on E:Exception do...
Als Fehlermeldung wird ausgegeben:

WSDL-Datei/-Ort kann nicht geladen werden: https..... Fehler[IOHandler value is not valid]

Ich vermute, daß es etwas mit der https Seite zu tun hat, komme aber nicht wirklich weiter. Hat einer von Euch eine Idee?

Vielen Dank und viele Grüße,

ThLeh

mjustin 1. Okt 2013 11:47

AW: Webservice Zugriff per Android (XE5)
 
Zitat:

Zitat von thLeh (Beitrag 1230461)
WSDL-Datei/-Ort kann nicht geladen werden: https..... Fehler[IOHandler value is not valid]

Der internen Indy Komponente muss ein SSL IOHandler zugewiesen werden.

Ich würde daher erst einmal einen Test-Webservice-Client erstellen der auf Windows läuft, um den Fehler zu reproduzieren. Wenn er aber dort nicht, sondern nur auf dem Device auftritt, wird es "spannend" ...

thLeh 2. Okt 2013 12:07

AW: Webservice Zugriff per Android (XE5)
 
Hallo,

Vielen Dank für die Info. Ich habe schon alles mögliches getestet aber irgendwie komme ich nicht zum Ergebnis. Auch im iOS Simulator funktioniert es nicht. Als Windows Anwendung aber ohne Probleme. Auch die Compiler direktiven
Delphi-Quellcode:
{$IF Defined(IOS) and Defined(CPUARM)}
  IdSSLOpenSSLHeaders_Static,
{$ELSE}
  IdSSLOpenSSLHeaders,
{$ENDIF}
und die Anweisungen
Delphi-Quellcode:
{$IF Defined(IOS) and not Defined(CPUARM)}
  IdOpenSSLSetLibPath('/usr/lib/');
{$ENDIF}
die ich ergoogelt habe bringen nichts. Wie binde ich denn den IO Handler an die interne Indy Komponente :oops:

mjustin 3. Okt 2013 07:59

AW: Webservice Zugriff per Android (XE5)
 
Falls es nur auf dem Emulator oder dem Device zum Fehler kommt:

* anhand des Indy Sourcecodes prüfen, wo die SSL Bibliotheken liegen müssen wenn Indy unter Android läuft
* kontrollieren, ob sie dort auch liegen (zum Beispiel mit FileExists ...)
* eventuell in Indy weitere Debugausgaben an den Stellen einfügen, an denen der SSL Handler eingerichtet wird
* oder im Embarcadero Forum / bei Stackoverflow eine Problembeschreibung posten
* sowie: anhand des Subversions-Logs die Indy Revisionen seit XE5 durchsehen ob dort ein Fix eingepflegt wurde


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:34 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