其他分享
首页 > 其他分享> > 使用Apache Commons Net在ESP8266上列出文件时获取“无法确定系统类型 – 响应:500 Unknow命令”

使用Apache Commons Net在ESP8266上列出文件时获取“无法确定系统类型 – 响应:500 Unknow命令”

作者:互联网

我尝试连接ESP8266中的FTP服务器.连接成功,但我无法获取服务器上的文件列表.

我的代码是:

FTPClient mFtpClient = new FTPClient();
mFtpClient.setConnectTimeout(10000);
mFtpClient.connect(InetAddress.getByName(ip));
status = mFtpClient.login(userName, pass);
Log.e("isFTPConnected", String.valueOf(status));
if (FTPReply.isPositiveCompletion(mFtpClient.getReplyCode())) {
    mFtpClient.setFileType(FTP.BINARY_FILE_TYPE);
    mFtpClient.enterLocalPassiveMode();
    FTPFile[] mFileArray = mFtpClient.listFiles();
    Log.e("Size", String.valueOf(mFileArray.length));
}

在逻辑上我得到错误:

java.io.IOException: Unable to determine system type – response: 500 Unknow command.

我使用Apache Commons Net FTP库.那我的代码有什么问题?从FileZilla Windows客户端,我可以连接.可能是ESP中的原因是SPIFF文件系统?或另一个原因?

谢谢你的回答和兴趣!

解决方法:

您的服务器不支持SYST命令,FTPClient需要决定如何解析LIST命令的响应.

解决方案是:

>如果您的服务器支持MLSD命令,请使用mlistDir而不是listFiles.
>或使用System.setProperty设置FTP_SYSTEM_TYPE_DEFAULT或FTP_SYSTEM_TYPE以建议您的服务器使用的目录列表格式.

标签:java,android,ftp,apache-commons-net
来源: https://codeday.me/bug/20190701/1347831.html