Qt https 用户认证authenticationRequired()

QNetworkAccessManager以POST方式访问https
需要用户认证,所以用SIGNAL(authenticationRequired(QNetworkReply *, QAuthenticator *))

    manager = new QNetworkAccessManager(this);    connect(manager,SIGNAL(authenticationRequired(QNetworkReply *, QAuthenticator *)),
            this, SLOT(onAuthenticationRequest(QNetworkReply *, QAuthenticator *)));

以POST访问

    QByteArray postdata;   
    reply = manager->post(QNetworkRequest(url), postdata);

却不会运行SLOT(onAuthenticationRequest(QNetworkReply *, QAuthenticator *))


怎么也查不出原因


用wget https://xxx.xxxxx.xxx/xxxx  --no-check-certificate --post-data="" --user=username --password=pass
可以正确获取

-----------------------------------------------------------------------------

加上
#ifndef QT_NO_SSL
    connect(manager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),
            this, SLOT(sslErrors(QNetworkReply*,QList<QSslError>)));
#endif


#ifndef QT_NO_SSL
void MainWindow::sslErrors(QNetworkReply *reply,const QList<QSslError> &)
{
    reply->ignoreSslErrors();
}
#endif

解决问题

 刚想说,发现你自己解决了,反正就是因为qt自己没有**验证的功能,会出现ssl的错误,也可以自己带**来完成验证

http://www.qter.org/forum.php?mod=viewthread&tid=5762&extra=page%3D1

原文地址:https://www.cnblogs.com/findumars/p/6404098.html