zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    单调队列 POJ 2823
    大组合数取mod lucas 定理
    多校4
    多校2
    2016多校1
    百度之星 初赛B续
    iot-web增加apis-namespace组件
    25.75k8s
    新项目增加gradlew
    vue图片点击放大预览v-viewer
  • 原文地址:https://www.cnblogs.com/findumars/p/6404098.html
Copyright © 2011-2022 走看看