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

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

概述我尝试连接ESP8266中的FTP服务器.连接成功,但我无法获取服务器上的文件列表.我的代码是:FTPClientmFtpClient=newFTPClient();mFtpClient.setConnectTimeout(10000);mFtpClient.connect(InetAddress.getByName(ip));status=mFtpClient.login(userName,pass);Log.e("is

我尝试连接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以建议您的服务器使用的目录列表格式.

总结

以上是内存溢出为你收集整理的使用Apache Commons Net在ESP8266上列出文件时获取“无法确定系统类型 – 响应:500 Unknow命令”全部内容,希望文章能够帮你解决使用Apache Commons Net在ESP8266上列出文件时获取“无法确定系统类型 – 响应:500 Unknow命令”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1118508.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存