【问题标题】:Codename One - Downloading txt file from URL not working in iOS代号一 - 从 URL 下载 txt 文件在 iOS 中不起作用
【发布时间】:2017-08-24 05:30:45
【问题描述】:

我有一个应用程序,它从 URL 下载 txt 文件,将其保存到存储中,然后我对其进行一些解析。在 Android 和 iOS 模拟器上,行为符合预期并且工作正常。在实际的 iphone 上,来自 URL 的流是空白的。

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
            }
      }

我将 Dialog.show() 放在那里进行调试,以帮助我了解发生了什么。弹出对话框,其正文为空白。我很困惑,因为在我的应用程序的早期版本中,这段代码是有效的。不知道我搞砸了什么。谢谢!

【问题讨论】:

  • 您检查日志是否有任何错误?该 URL 是否使用有效证书(符合 ATS 规则)?它实际上是有效的 UTF-8 吗?
  • 是的,日志上没有任何错误。该文件以 UTF-8 编码。我尝试下载其他几个文件只是为了查看它是否是文件本身,但结果相同。我会更多地研究 ATS 的要求——我承认,我在这方面的知识很薄弱。感谢您的建议。

标签: ios codenameone


【解决方案1】:

您正在将文件下载到 Storage,但您正尝试从 FileSystemStorage 中读取。这是两个不同的东西。在某些平台上,它会将 Storage 存储在文件系统中,这就是为什么这在某些平台上可能会奏效。但你不能指望这一点。

如果您想使用 FileSystemStorage,请使用Util.downloadUrlToFile 进行下载。如果要使用Storage,则使用Storage.createInputStream读取文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-24
    • 2014-07-18
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多