QNetworkAccessManager访问https网站问题汇总

QNetworkAccessManager在访问https的网页是出现的错误。

1、Error creating SSL context

需要将Qt安装目录下C:\Qt\Qt5.10.1\Tools\QtCreator\bin的libeay32.dll和ssleay32.dll复制到跟Qt5Network.dll同一个目录(C:\Qt\Qt5.10.1\5.10.1\mingw53_32\bin)。

 

2、QNetworkReply::SslHandshakeFailedError

    QNetworkRequest request;
    QSslConfiguration config =QSslConfiguration::defaultConfiguration();
    config.setProtocol(QSsl::TlsV1);
    config.setPeerVerifyMode(QSslSocket::VerifyNone);
    request.setSslConfiguration(config);
    request.setUrl(QUrl(urlstr));

参考 https://blog.csdn.net/jeffyko/article/details/79333412实现

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QNetworkReply是Qt网络模块中的一个类,用于处理网络请求的响应。下面是QNetworkReply的基本用法: 1. 发送网络请求: 使用QNetworkAccessManager发送网络请求,并获得QNetworkReply对象作为响应。 ```cpp QNetworkAccessManager *manager = new QNetworkAccessManager(this); QNetworkReply *reply = manager->get(QNetworkRequest(QUrl("https://example.com"))); ``` 2. 获取响应数据: 使用QNetworkReply的readAll()函数可以获取到完整的响应数据。 ```cpp QByteArray responseData = reply->readAll(); ``` 3. 处理错误: 可以使用QNetworkReplyerror()函数来检查是否发生了错误,并使用errorString()获取错误信息。 ```cpp if (reply->error() != QNetworkReply::NoError) { qDebug() << "Error: " << reply->errorString(); } ``` 4. 异步请求: 可以使用QNetworkReply的信号和槽机制来实现异步请求和处理。 ```cpp connect(reply, &QNetworkReply::finished, this, [=]() { if (reply->error() == QNetworkReply::NoError) { QByteArray responseData = reply->readAll(); // 处理响应数据 } else { qDebug() << "Error: " << reply->errorString(); } }); ``` 5. 取消请求: 可以使用QNetworkReply的abort()函数来取消当前的网络请求。 ```cpp reply->abort(); ``` 需要注意的是,为了使QNetworkReply正常工作,需要在使用完毕后释放它的内存,可以使用deleteLater()函数来延迟删除。 ```cpp reply->deleteLater(); ``` 以上是QNetworkReply的基本用法,更多高级用法和功能可以参考Qt官方文档或其他相关教程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值