Android的FTP连接失败 [英] Android FTP connection Failed
本文介绍了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屋!
查看全文