【问题标题】:Upload Xml file to internet via FTP通过 FTP 将 Xml 文件上传到 Internet
【发布时间】:2013-11-26 18:09:51
【问题描述】:

我正在使用 Android 开发游戏。游戏有很多关卡和关卡编辑器。因此,当用户制作关卡时,数据将保存为 Xml 文件。所以我想将此 Xml 文件上传到 Internet 以共享其他用户。我搜索并尝试了以下代码。但它没有用。整个代码如下:

                String FTP_HOST= "185.27.134.11";
                String FTP_USER = "fees0_14042425";
                String FTP_PASS  ="kadi1sd22";

                File f = new File(Environment.getExternalStorageDirectory()+"/kadirGameLevels1/a.png");


                    FTPClient client = new FTPClient();

            try {

                client.connect(FTP_HOST,21);
                client.login(FTP_USER, FTP_PASS);
                client.setType(FTPClient.TYPE_BINARY);
                client.changeDirectory("/levels/");

                client.upload(f, new MyTransferListener());

            } catch (Exception e) {
                e.printStackTrace();
                try {
                    client.disconnect(true);    
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }

但即使我只使用这一行,它仍然会停止运行。我的问题是集成还是其他什么?

       FTPClient client = new FTPClient();

【问题讨论】:

  • 您希望用户通过 FTP 共享级别数据?为什么选择 FTP?
  • 你知道更好的方法吗?
  • 我要么使用像 parse (parse.com) 这样的云服务——还有很多其他的,或者使用 HTTP/JSON 之类的东西作为传输来编写我自己的简单后端。使用 FTP 对我来说似乎很不寻常。

标签: java android xml ftp


【解决方案1】:

确保您在AndroidManifest.xml 中拥有 INTERNET 权限:

<uses-permission android:name="android.permission.INTERNET" />

这可确保您的应用拥有访问互联网的正确权限。

另外,不要在主 UI 线程中放置任何网络代码,否则您可能会收到 NetworkOnMainThreadException

而是将所有 FTP 连接/访问代码放入AsyncTaskhttps://stackoverflow.com/a/6343299/833647

【讨论】:

  • 我回答的第二部分呢?您的代码在AsyncTask 中吗?你收到NetworkOnMainThreadException 了吗?也许如果您发布 logcat 错误,人们将能够提供更好的帮助……到目前为止,我只是在猜测 :)
猜你喜欢
  • 1970-01-01
  • 2010-10-01
  • 2016-12-14
  • 2012-04-26
  • 2013-03-24
  • 1970-01-01
  • 2013-07-01
  • 1970-01-01
相关资源
最近更新 更多