2017-08-23 2 views
1

J'ai une application qui télécharge un fichier txt à partir d'une URL, l'enregistre dans le stockage, puis je l'analyse. Sur Android et le simulateur pour iOS, le comportement est comme prévu et fonctionne bien. Sur l'iPhone actuel, le flux de l'URL est vide.Codename One - Téléchargement du fichier txt à partir de l'URL ne fonctionnant pas dans iOS

public void getDailyMTX() { 
     String mtxURL = "https://someURLhere.com/file.txt"; 
     FileSystemStorage fs = FileSystemStorage.getInstance(); 
     Util.downloadUrlToStorage(mtxURL, fileName, true); 

     try { 
       InputStream is = fs.openInputStream(fileName); 
       s = Util.readToString(is, "UTF-8"); 
       Dialog.show("downloaded file", s, "OK", 
       null); 
      } catch (IOException e1) { 
       // handle exception 
      } 
     } 

je mets les Dialog.show() là-bas pour des raisons de débogage pour essayer de me aider à voir ce qui se passe. La boîte de dialogue apparaît et le corps est vide. Je suis assez confus parce que sur les versions antérieures de mon application ce code fonctionnait. Pas sûr de ce que j'ai foiré. Merci!

+0

Avez-vous vérifié les journaux pour les erreurs? L'URL utilise-t-elle un certificat valide (conforme aux règles ATS)? Est-il réellement valide UTF-8? – jcaron

+0

Oui, il n'y a pas d'erreur sur les journaux. Le fichier est codé en UTF-8. J'ai essayé de télécharger quelques autres fichiers juste pour voir si c'était le fichier lui-même mais c'est le même résultat. Je vais examiner plus en détail les exigences de l'ATS - je dois admettre que je suis assez faible dans mes connaissances dans ce domaine. Merci pour la suggestion. – FlapsFail

Répondre

2

Vous téléchargez le fichier de stockage, mais vous essayez de lire FileSystemStorage. Ce sont deux choses différentes. Sur certaines plates-formes, il stocke Storage dans le système de fichiers, ce qui explique pourquoi cela peut fonctionner par chance sur certaines plates-formes. Mais vous ne pouvez pas compter là-dessus.

Si vous souhaitez utiliser FileSystemStorage, utilisez Util.downloadUrlToFile pour le téléchargement. Si vous souhaitez utiliser le stockage, utilisez Storage.createInputStream pour lire le fichier.