当前位置: 首页 > news >正文

做效果图展板网站住房和建设部执业资格注册中心网站

做效果图展板网站,住房和建设部执业资格注册中心网站,建设工程信息网官网新网站,北京网站建设公司现状前言 在现代应用程序中#xff0c;安全地传输数据变得越来越重要。Qt提供了一套完整的网络API来支持HTTP和HTTPS通信。然而#xff0c;在实际开发过程中#xff0c;开发者可能会遇到SSL相关的错误#xff0c;例如“TLS initialization failed”#xff0c;cantt open ssl…前言 在现代应用程序中安全地传输数据变得越来越重要。Qt提供了一套完整的网络API来支持HTTP和HTTPS通信。然而在实际开发过程中开发者可能会遇到SSL相关的错误例如“TLS initialization failed”cantt open ssl.lib等问题。本文将介绍如何在Qt中使用HTTPS进行网络访问网上搜到的结果大都是错的。这里并提供解决TLS初始化失败和SSL库问题的方法。 一、Qt中使用HTTPS的基本概念 Qt使用QNetworkAccessManager和QNetworkReply类来处理网络请求。对于HTTPS请求Qt会自动使用SSL/TLS进行加密通信。以下是使用HTTPS的基本步骤 创建QNetworkAccessManager实例。使用get()、post()等方法发起请求。连接finished()信号以处理响应。检查QNetworkReply的状态和错误。 二、TLS初始化失败的原因 TLS初始化失败通常是因为Qt没有正确配置或找到SSL库。这可能是由于以下原因 缺少必要的SSL库文件。编译Qt时未启用SSL支持。系统环境变量未正确设置。 三、解决TLS初始化失败的步骤 确保你的项目中包含了网络模块core和network模块通常默认包含SSL支持。 注意你的yourprj.pro工程文件配置中只需要 QT network即可。不需要向网上说的那样又是配置CONFIG openssl又是增加LIBS -Llib -lssl -lcrypto。这样搞反倒是错的会报cant open ssl.lib。其实关于ssl的库qt安装时已经包含了编译时也会自动链接成功编译成功。 在你的Qt应用程序中尝试创建一个QSslSocket或QSslConfiguration对象并使用它来发起HTTPS请求。如果Qt支持SSL这些类应该能够正常使用。能否编译通过编译通过则没问题。 唯一需要注意的是 运行后访问https报错提示TLS initialization failed。这是因为qt自带的libssl-1_1.dll很扯位置在Qt\Qt5.14.2\Tools\QtCreator\bin\libssl-1_1.dll, 是个32位的库提供还不提供全啊缺少64位的库。咋知道它是32位的库简单办法文本打开后看到PE..L....的内容说明它是32位的库64位的库打开后看二进制能看到PE..d..的内容。解决办法也简单网上找到64位的库名字叫libssl-1_1-x64.dll 和libcrypto-1_1-x64.dll下载后把它放入你的工具链的bin目录下我的是在 Qt\Qt5.14.2\5.14.2\msvc2017_64\bin下。 简单使用 以下是一个简单的示例展示如何在Qt中发起HTTPS请求 首先在工程的pro文件中增加 QT network 包含相应的头文件  #include QNetworkAccessManager #include QNetworkRequest #include QNetworkReply #include QCoreApplication #include QNetworkAccessManager #include QNetworkRequest #include QNetworkReply #include QDebugint main(int argc, char *argv[]) {QCoreApplication app(argc, argv);// 创建网络访问管理器QNetworkAccessManager manager;// 创建请求QNetworkRequest request(QUrl(https://www.example.com));request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, true);// 发起HTTPS GET请求QNetworkReply *reply manager.get(request);// 连接信号以处理响应QObject::connect(reply, QNetworkReply::finished, []() {if (reply-error() QNetworkReply::NoError) {qDebug() HTTPS request succeeded!;qDebug() Response: reply-readAll();} else {qDebug() HTTPS request failed with error: reply-errorString();}reply-deleteLater();});// 连接错误信号QObject::connect(reply, QNetworkReply::errorOccurred, [](QNetworkReply::NetworkError error) {qDebug() Error occurred: error;});// 启动事件循环return app.exec(); } 示例中并没有设置SSL配置因为大多数情况下Qt会自动处理SSL配置。不配置也行。但是如果你需要自定义SSL配置可以这样  // 获取默认SSL配置 QSslConfiguration sslConfig QSslConfiguration::defaultConfiguration();// 自定义SSL配置例如信任特定的CA证书 sslConfig.setPeerVerifyMode(QSslSocket::VerifyPeer); sslConfig.setProtocol(QSsl::TlsV1_2); // 指定使用TLS 1.2协议// 应用SSL配置到请求 request.setSslConfiguration(sslConfig); 自定义SSL配置通常只在需要特殊配置的情况下使用例如在自签名证书或特定协议版本的情况下。对于大多数HTTPS请求Qt的默认配置足够。  下载文件示例 实现一个通过https链接下载文件的功能 mainwindows.h头文件中增加 private:Ui::MainWindow *ui;QTcpServer *server;QTcpSocket *clientSocket;QNetworkAccessManager *networkManager;QNetworkReply *networkReply;QFile *m_file;QString m_videoUrl; } void MainWindow::onDownloadProgress(qint64 bytesReceived, qint64 bytesTotal) {if (bytesTotal 0) {int progress static_castint((bytesReceived * 100) / bytesTotal);ui-te_result-append(QString(Download progress: %1%).arg(progress));ui-progress-setValue(progress);} }void MainWindow::onFinished() {if (networkReply-error()) {ui-te_result-append(QString(Download failed: %1).arg(networkReply-errorString()));} else {m_file-write(networkReply-readAll());m_file-close();ui-te_result-append(Download completed);}networkReply-deleteLater();networkReply nullptr;if (m_file) {m_file-deleteLater();m_file nullptr;} }void MainWindow::on_btnDown_clicked() {// 开始下载视频if(!m_videoUrl.isEmpty()){ui-te_result-append(begin download:);QUrl url(m_videoUrl);QNetworkRequest request(url);networkReply networkManager-get(request);connect(networkReply, QNetworkReply::downloadProgress, this, MainWindow::onDownloadProgress);connect(networkReply, QNetworkReply::finished, this, MainWindow::onFinished);// 创建文件m_file new QFile(downloaded_video.mp4, this);if (!m_file-open(QIODevice::WriteOnly)) {ui-te_result-append(Failed to open file for writing);delete m_file;m_file nullptr;return;}}else{ui-te_result-append(begin download:);ui-te_result-append(error,no videoUrl!);return;}} 其他资源 QT5.14.2使用webkit引擎完成网页浏览-腾讯云开发者社区-腾讯云
http://www.hkea.cn/news/14408566/

相关文章:

  • 龙山建设工程有限公司网站安卓手机怎么做网站
  • 过期域名查询网站wordpress 应用店商
  • 做网站后台营销推广方式有哪些
  • 网站设计的几大标准wordpress插件按下载数
  • 凤翔网站制作开发小程序需要多少钱难吗
  • 快站淘客中转页果麦传媒的网站怎么做的
  • 网站开发样板网站自动识别移动终端
  • jsp网站开发制作wordpress博客无法重定向
  • 三都网站建设门户网站的特征
  • 网站建设授权书如何美化网站首页
  • 企业网站的公司和产品信息的介绍与网络营销关系怎样免费做书画网站
  • 龙华哪有做网站设计网络营销八大工具
  • 一定要知道的网站wordpress评论去除
  • 网站建设 英语词汇国际空间站
  • 网站维护提醒php文件大气企业响应式网站
  • 商标可以做网站吗网站收录查询接口
  • 上海高登联合建设网站做网站别人输账号代码
  • 做汽车配件出口用什么网站好些ui和前端哪个前景好
  • 网站建设服务器费用网站关键字可以做几个
  • 科技网站模板免费下载网站设计主要做什么
  • 做导购网站需要多大的服务器源码网站代理
  • 网站建设市场调研框架seo网站排名优化公司哪家好
  • 自己做的网站能联网吗济南建设工程信息网官网
  • 百度怎么自己做网站sun0769东莞阳光网
  • 专业网站推广引流郑州市网站建设怎么样
  • 网站打不开是为什么海兴县网站建设公司
  • 网站建设公司客户开发手册网站的seo优化方案
  • 相亲网站做期货现货贵金属的人合肥营销型网站建设公司
  • 湘阴网站建设东莞网站建设优化东莞
  • 扶余网站建设梧州网页设计师招聘