• Qt 技巧: 解决未解析的SSL问题


    因为https访问需要用到SSL认证,而QT默认是不支持SSL认证,所以在使用之前必须先做一些准备工作:

    需要安装OpenSSL库:

    1、首先打开http://slproweb.com/products/Win32OpenSSL.html网页;

    2、下载安装包,我下载的是:Win32 OpenSSL v1.0.1c Light安装包,随着时间的推进,这个版本会不断更新的;

    3、安装(exe文件)到本地,并且在安装过程中选择将库安装到OpenSSL的安装目录(/bin)下面。

    4、将libeay32.dll 和 ssleay32.dll 文件拷贝到Qt中的存放有QtNetwork4.dll和QtNetworkd4.dll的文件目录下。我的是D:Qt4.8.2in

    现在可以编写代码:

    QNetworkRequest request;
    QSslConfiguration config;

     config.setPeerVerifyMode(QSslSocket::VerifyNone);
     config.setProtocol(QSsl::TlsV1);
     request.setSslConfiguration(config);

    上面三句添回检验证书模式与协议,并设置给对应QNetworkRequest,非常重要,在这里花费了我半天的时间才找到问题

    request.setUrl(QUrl("https://www.xxx.com/html.jsp"));
    request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));
    request.setHeader(QNetworkRequest::ContentLengthHeader, bytePost.length());
    QNetworkReply *pReply = pManager->post(request, bytePost);

    备注:

        SSL证书认证,有以下三种:

    1.
     QSslConfiguration config ;

     config.setPeerVerifyMode(QSslSocket::VerifyNone);
     config.setProtocol(QSsl::TlsV1);

     QNetworkRequest request(req);
     request.setSslConfiguration(config);
     

     2.
     QNetworkRequest request ;

     request.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true);
     QNetworkReply* reply = QNetworkAccessManager::createRequest(op, request, outgoingData);
     reply->ignoreSslErrors();
     

     3.
     QSslConfiguration config ;

     QList<QSslCertificate> certs = QSslCertificate::fromPath("C:\FiddlerRoot.crt");
     config.setCaCertificates(certs);

     QNetworkRequest request(req);
     request.setSslConfiguration(config);


    转载自:http://blog.csdn.net/itjobtxq/article/details/8244509

    http://blog.csdn.net/jan5_reyn/article/details/38955711

  • 相关阅读:
    筛选DataTable行重复
    还原数据库时在向服务器发送请求时发生传输级错误
    not in 语句 要 排除 null情况
    C#实现万年历(农历、节气、节日、星座、星宿、属相、生肖、闰年月、时辰)
    关于Form_Load和Public Form()那些事
    C#多线程编程简述(转载)
    标识列重置
    NET批量大数据插入性能分析及比较
    Asp.net 备份和还原SQL Server及压缩Access数据库
    线性查找(递归)
  • 原文地址:https://www.cnblogs.com/findumars/p/5574282.html
Copyright © 2020-2023  润新知