QNetworkAccessManager and authenticationRequired

QNetworkAccessManager and authenticationRequired

本文关键字:authenticationRequired and QNetworkAccessManager      更新时间:2023-10-16

帮我写程序工作与协议FTP和认证通过登录密码使用QnetworkAccessManager。我实现连接到服务器和获取目录列表,但我不明白如何实现身份验证。我读了一篇文章http://doc.qt.nokia.com/qq/32/qq32-webkit-protocols.html。

我的来源在附件https://rapidshare.com/files/457472584/zip.zip.

Qt 4.7Windows XpLinux

我正在做类似的事情,需要解决非常相同的问题:
我所做的是:
-创建QNetworkAccessManager对象,并连接信号authenticationRequired

m_ftpManagerPtr = new QNetworkAccessManager(this);
Q_ASSERT(m_ftpManagerPtr);
connect ( m_ftpManagerPtr,
          SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)),
          this,        
          SLOT(onAuthenticationRequestSlot(QNetworkReply*,QAuthenticator*)) );

在slot函数中,我只是填充了用户名和密码字段/变量:

void QacFtpClient::onAuthenticationRequestSlot(QNetworkReply *aReply, 
                                               QAuthenticator *aAuthenticator)
{
    qDebug() << Q_FUNC_INFO;
    aAuthenticator->setUser(m_ftpUser);
    aAuthenticator->setPassword(m_ftpPasswd);
}

就是这样…它会自动工作;)

QUrl有一个用户/密码字段,您可以使用:

QNetworkAccessManager* manager = new QNetworkAccessManager(this);
QUrl url("host");
url.setUserName("user");
url.setPassword("password");
manager->get(QNetworkRequest(url));
相关文章:
  • 没有找到相关文章