ftp服务器显示503,NET FTP Response error:(503) 的解决方法

1. 在应用。NET 访问FTP的Response来返回时,出现了如下错误。

da3d050601bdda21cd4701eac81534a1.png

2. 参考如下MSDN 和一些网络资源,尝试后解决了此问题.

> Ftp GetFileSize randomly throws FTP error 503 (Bad Sequence of

Commands)

>FtpWebRequest re-sending USER and PASS commands half way through

download loop

3. 问题是在此处应用此个FTP Request 之前曾经使用些地址创建了一个登录Session,

所以在后面同一地址会话建立时会有这个异常报告。

The remote server returned an error: (503) Bad sequence of commands.

解决办法就是将 request 对象的 KeepAlive 设为 False,其后基于同一IP创建的Session将不会抛出异常了。

FtpWebRequest reqFTP;

reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(sUnixURL));//"ftp://"

+ "10.2.159.69" + "/" + fileInf.Name));

reqFTP.Credentials = new NetworkCredential("dwei", "Admin98");

reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;

reqFTP.UseBinary = true;

reqFTP.KeepAlive = false; // If keepalive is true will make the same IP

request response lead to failed !

FileStream outputStream = new FileStream(FILE_NAME, FileMode.Create);

// Create the writer for data.

BinaryWriter w = new BinaryWriter(outputStream);

FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();

在Qt中显示FTP服务器所有文件,首先需要使用Qt的网络模块进行FTP的连接和操作。以下是一个简单的示例代码: ```cpp #include <QCoreApplication> #include <QDebug> #include <QUrl> #include <QNetworkAccessManager> #include <QNetworkReply> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QUrl url; // 需要连接的FTP服务器地址 url.setScheme("ftp"); // 设置协议为FTP url.setUserName("username"); // FTP服务器登录用户名 url.setPassword("password"); // FTP服务器登录密码 url.setHost("ftp.example.com"); // FTP服务器主机地址 url.setPath("/"); // FTP服务器根目录路径 QNetworkAccessManager manager; QNetworkReply *reply = manager.get(QNetworkRequest(url)); QObject::connect(reply, &QNetworkReply::finished, [&]() { if(reply->error() != QNetworkReply::NoError) { qDebug() << "Error: " << reply->errorString(); } else { QString response = reply->readAll(); qDebug() << "Response: " << response; } reply->deleteLater(); qApp->quit(); }); return a.exec(); } ``` 上述代码创建了一个`QUrl`对象来指定FTP服务器的地址、用户名、密码和根目录路径。然后使用`QNetworkAccessManager`发送GET请求获取FTP服务器的文件列表。当请求完成后,通过`QNetworkReply`的`readAll()`函数读取服务器响应的文件列表内容,并输出到控制台。 以上代码仅仅是一个简单的示例,实际操作中可能需要进行更多的错误处理、文件过滤和目录遍历等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值