前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Qt官方示例-Http

Qt官方示例-Http

作者头像
Qt君
发布2019-11-04 14:08:52
8670
发布2019-11-04 14:08:52
举报
文章被收录于专栏:跟Qt君学编程跟Qt君学编程

通过get接口对url资源下载,并显示下载进度。

0x00 Http请求
代码语言:javascript
复制
void HttpWindow::startRequest(const QUrl &requestedUrl)
{
    ...
    reply = qnam.get(QNetworkRequest(url));
    connect(reply, &QNetworkReply::finished, this, &HttpWindow::httpFinished);
    connect(reply, &QIODevice::readyRead, this, &HttpWindow::httpReadyRead);

    ProgressDialog *progressDialog = new ProgressDialog(url, this);
    progressDialog->setAttribute(Qt::WA_DeleteOnClose);
    connect(progressDialog, &QProgressDialog::canceled, this, &HttpWindow::cancelDownload);
    connect(reply, &QNetworkReply::downloadProgress, progressDialog, &ProgressDialog::networkReplyProgress);
    connect(reply, &QNetworkReply::finished, progressDialog, &ProgressDialog::hide);
    ...
}
0x01 下载进度

  使用以下接口获取下载进度。

代码语言:javascript
复制
void QNetworkReply::downloadProgress(qint64 bytesReceived, 
                                     qint64 bytesTotal);
0x02 网络验证(如有需要)

  绑定authenticationRequired信号:

代码语言:javascript
复制
connect(&qnam, &QNetworkAccessManager::authenticationRequired,
        this, &HttpWindow::slotAuthenticationRequired);

  验证动作:

代码语言:javascript
复制
oid HttpWindow::slotAuthenticationRequired(QNetworkReply *, QAuthenticator *authenticator)
{
    ...
    // Did the URL have information? Fill the UI
    // This is only relevant if the URL-supplied credentials were wrong
    ui.userEdit->setText(url.userName());
    ui.passwordEdit->setText(url.password());

    if (authenticationDialog.exec() == QDialog::Accepted) {
        authenticator->setUser(ui.userEdit->text());
        authenticator->setPassword(ui.passwordEdit->text());
    }
}
0x03 关于更多
  • 在QtCreator软件可以找到:
  • 或在以下Qt安装目录找到
代码语言:javascript
复制
C:\Qt\{你的Qt版本}\Examples\{你的Qt版本}\network\http
  • 相关链接
代码语言:javascript
复制
https://doc.qt.io/qt-5/qtnetwork-http-example.html
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00 Http请求
  • 0x01 下载进度
  • 0x02 网络验证(如有需要)
  • 0x03 关于更多
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档