Android的FTP连接失败 [英] Android FTP connection Failed

查看:430
本文介绍了Android的FTP连接失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图使用FTP连接服务器并下载文件

但在连接如Android的失败,但是当我尝试连接使用FileZilla中或Windows资源管理器的FTP,它的工作原理。背后是什么原因?

下面是我的code

类FTPDownload扩展的AsyncTask {

 布尔运行= TRUE;今天的日期= Calendar.getInstance()的getTime()。
格式格式化=新的SimpleDateFormat(YYYY-MM-dd_HH:MM:SS);
字符串reportDate = formatter.format(今天);
字符串文件= reportDate +_+giant.mp4@覆盖
保护无效doInBackground(网址... PARAMS){
    // TODO自动生成方法存根
    Log.d(******,后台线程出发......);    FTPClient客户端=新FTPClient();    尝试{
        Log.d(标签,抵);
        client.connect(ftp://newrising.win5.siteonlinetest.com);
        布尔successLogin = client.login(newrising,newrising2014cap!);        如果(successLogin){
            Log.d(标签,成功);            //获取存储FTP服务器上的文件,并将其存储到FTPFiles数组
            FTPFile [] =文件client.listFiles();
            对于(FTPFile ftpFile:文件){
                //检查文件类型和打印结果
                如果(ftpFile.getType()== FTPFile.FILE_TYPE){
                    的System.out.println(文件:+ ftpFile.getName()+
                            大小 - >中+ FileUtils.byteCountToDisplaySize(
                                    ftpFile.getSize()));
                }
            }
        }其他{
            Log.d(标签,sosad);
        }    }赶上(IOException异常五){
        e.printStackTrace();
    } {最后
        尝试{
            client.disconnect();
        }赶上(IOException异常五){
            e.printStackTrace();
        }
    }

以下是我的logcat报告

  06-19 16:22:19.252:W / System.err的(15270)的java.net.UnknownHostException:无法解析主机的ftp://newrising.win5.siteonlinetest .COM:名称解析不可恢复的故障
06-19 16:22:19.252:W / System.err的(15270):在java.net.InetAddress.lookupHostByName(InetAddress.java:426)
06-19 16:22:19.252:W / System.err的(15270):在java.net.InetAddress.getAllByNameImpl(InetAddress.java:242)
06-19 16:22:19.252:W / System.err的(15270):在java.net.InetAddress.getByName(InetAddress.java:295)
06-19 16:22:19.252:W / System.err的(15270):在org.apache.commons.net.SocketClient.connect(SocketClient.java:203)
06-19 16:22:19.252:W / System.err的(15270):在org.apache.commons.net.SocketClient.connect(SocketClient.java:296)
06-19 16:22:19.252:W / System.err的(15270):在com.example.recordandmovie.Main $ FTPDownload.doInBackground(Main.java:105)
06-19 16:22:19.252:W / System.err的(15270):在com.example.recordandmovie.Main $ FTPDownload.doInBackground(Main.java:1)
06-19 16:22:19.252:W / System.err的(15270):在android.os.AsyncTask $ 2.call(AsyncTask.java:264)
06-19 16:22:19.252:W / System.err的(15270):在java.util.concurrent.FutureTask中$ Sync.innerRun(FutureTask.java:305)
06-19 16:22:19.252:W / System.err的(15270):在java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-19 16:22:19.252:W / System.err的(15270):在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
06-19 16:22:19.252:W / System.err的(15270):在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:569)
06-19 16:22:19.252:W / System.err的(15270):在java.lang.Thread.run(Thread.java:856)
06-19 16:22:19.252:W / System.err的(15270):libcore.io.GaiException:产生的原因的getaddrinfo失败:EAI_FAIL(名称解析不可恢复的故障)
06-19 16:22:19.262:W / System.err的(15270):在libcore.io.Posix.getaddrinfo(本机方法)
06-19 16:22:19.262:W / System.err的(15270):在libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:55)
06-19 16:22:19.262:W / System.err的(15270):在java.net.InetAddress.lookupHostByName(InetAddress.java:411)
06-19 16:22:19.262:W / System.err的(15270):... 12多


解决方案

试试这个:

  client.connect(newrising.win5.siteonlinetest.com); //删除`FTP://`

I am trying to use FTp to connect the server and download the file

but the conection fails at the Android , but when I try to connect the FTP using FileZilla or the Windows File Explorer , it works. What is the reason behind ?

the below is my code

class FTPDownload extends AsyncTask{

boolean running = true;

Date today = Calendar.getInstance().getTime();    
Format formatter = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss");
String reportDate = formatter.format(today);


String file = reportDate + "_" + "giant.mp4";

@Override
protected Void doInBackground(URL... params) {
    // TODO Auto-generated method stub
    Log.d("******", "Background thread starting......"); 

    FTPClient client = new FTPClient();

    try {
        Log.d("tag" , "arrived");
        client.connect("ftp://newrising.win5.siteonlinetest.com");
        boolean successLogin = client.login("newrising", "newrising2014cap!");

        if(successLogin){
            Log.d("tag" , "success");

            // Get the files stored on FTP Server and store them into an array of FTPFiles
            FTPFile[] files = client.listFiles();
            for (FTPFile ftpFile : files) {
                // Check the file type and print result
                if (ftpFile.getType() == FTPFile.FILE_TYPE) {
                    System.out.println("File: " + ftpFile.getName() +
                            "size-> " + FileUtils.byteCountToDisplaySize(
                                    ftpFile.getSize()));
                }
            }
        }else{
            Log.d("tag" , "sosad");
        }

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            client.disconnect();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

The below is my Logcat Report

06-19 16:22:19.252: W/System.err(15270): java.net.UnknownHostException: Unable to resolve host "ftp://newrising.win5.siteonlinetest.com": Non-recoverable failure in name resolution
06-19 16:22:19.252: W/System.err(15270):    at java.net.InetAddress.lookupHostByName(InetAddress.java:426)
06-19 16:22:19.252: W/System.err(15270):    at java.net.InetAddress.getAllByNameImpl(InetAddress.java:242)
06-19 16:22:19.252: W/System.err(15270):    at java.net.InetAddress.getByName(InetAddress.java:295)
06-19 16:22:19.252: W/System.err(15270):    at org.apache.commons.net.SocketClient.connect(SocketClient.java:203)
06-19 16:22:19.252: W/System.err(15270):    at org.apache.commons.net.SocketClient.connect(SocketClient.java:296)
06-19 16:22:19.252: W/System.err(15270):    at com.example.recordandmovie.Main$FTPDownload.doInBackground(Main.java:105)
06-19 16:22:19.252: W/System.err(15270):    at com.example.recordandmovie.Main$FTPDownload.doInBackground(Main.java:1)
06-19 16:22:19.252: W/System.err(15270):    at android.os.AsyncTask$2.call(AsyncTask.java:264)
06-19 16:22:19.252: W/System.err(15270):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
06-19 16:22:19.252: W/System.err(15270):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-19 16:22:19.252: W/System.err(15270):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
06-19 16:22:19.252: W/System.err(15270):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
06-19 16:22:19.252: W/System.err(15270):    at java.lang.Thread.run(Thread.java:856)
06-19 16:22:19.252: W/System.err(15270): Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_FAIL (Non-recoverable failure in name resolution)
06-19 16:22:19.262: W/System.err(15270):    at libcore.io.Posix.getaddrinfo(Native Method)
06-19 16:22:19.262: W/System.err(15270):    at libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:55)
06-19 16:22:19.262: W/System.err(15270):    at java.net.InetAddress.lookupHostByName(InetAddress.java:411)
06-19 16:22:19.262: W/System.err(15270):    ... 12 more

解决方案

Try this:

client.connect("newrising.win5.siteonlinetest.com"); // Remove `ftp://`

这篇关于Android的FTP连接失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆