Qt QNetworkAccessManager 中止身份验证

Posted

技术标签:

【中文标题】Qt QNetworkAccessManager 中止身份验证【英文标题】:Qt QNetworkAccessManager abort authentication 【发布时间】:2011-11-09 12:47:48 【问题描述】:

在Qt中,对于QNetworkAccessManager,我们知道authenticationRequired()在服务器返回HTTP 401代码时被调用。

假设凭据是用户输入的,密码不正确。在这种情况下如何检测密码是否错误并取消请求?

另外,SDK 说

QNetworkAccessManager 将在内部缓存凭据,并在服务器再次要求身份验证时发送相同的值,而不发出 authenticationRequired() 信号。

这意味着如果密码错误,那么进程将永远循环!!!

我错过了什么吗?

提前谢谢你

【问题讨论】:

【参考方案1】:

阅读整个段落,它特别说

如果它拒绝凭据,将再次发出此信号。

所以这不是问题。

【讨论】:

如果拒绝凭据,将再次发出此信号。然后 authenticationRequire 插槽将再次发送错误的密码(因为它不知道信号是第一次发送还是第二次发送)。它将永远循环

以上是关于Qt QNetworkAccessManager 中止身份验证的主要内容,如果未能解决你的问题,请参考以下文章

QT 从 QWebView 的 QNetworkAccessManager 读取数据

Qt同步QNetworkAccessManager获取

QT中的QNetworkAccessManager可靠连接

使用 QNetworkAccessManager 的 Qt 控制台应用程序

Qt无法打开包含文件:'QNetworkAccessManager':没有这样的文件或目录

在 Qt 中使用 QNetworkAccessManager 的持久连接