ToB企服应用市场:ToB评测及商务社交产业平台

标题: qt QNetworkRequest详解 [打印本页]

作者: 钜形不锈钢水箱    时间: 2025-1-25 12:57
标题: qt QNetworkRequest详解
1、概述

QNetworkRequest是Qt网络模块中的一个焦点类,专门用于处理网络哀求。它封装了网络哀求的所有关键信息,包括哀求的URL、HTTP头部信息等,使得开发者可以或许方便地在Qt应用程序中实行网络操作,如文件下载、网页内容获取等。QNetworkRequest通常与QNetworkAccessManager和QNetworkReply等类协同工作,共同构建Qt中强大的网络功能体系。

2、紧张方法






3、常用罗列类型

罗列类型 Attribute

这个罗列包含了多个属性代码,用于控制哀求行为并从回复中通报更多信息给应用程序。比方:



罗列类型 CacheLoadControl

这个罗列用于控制QNetworkAccessManager的缓冲机制,决定是优先使用网络还是缓存:



罗列类型 KnownHeaders

已知的HTTP头部字段罗列,方便设置和获取头部信息,比方:

  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. MainWindow::MainWindow(QWidget *parent)
  4.     : QMainWindow(parent)
  5.     , ui(new Ui::MainWindow)
  6. {
  7.     ui->setupUi(this);
  8.     networkManager = new QNetworkAccessManager(this);
  9.     connect(networkManager, &QNetworkAccessManager::finished, this, &MainWindow::replyFinished);
  10.     QUrl url("http://jsonplaceholder.typicode.com/posts/1");
  11.     QNetworkRequest request(url);
  12.     // 设置自定义头信息
  13.     request.setRawHeader("User-Agent", "QNetworkRequest Example");
  14.     networkManager->get(request);
  15.     QTimer::singleShot(5000, this, [&]
  16.     {
  17.         QUrl url("http://jsonplaceholder.typicode.com/posts");
  18.         QNetworkRequest request(url);
  19.         // 设置已知头信息
  20.         request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
  21.         QJsonObject json;
  22.         json["title"] = "foo";
  23.         json["body"] = "bar";
  24.         json["userId"] = 1;
  25.         QJsonDocument jsonDoc(json);
  26.         QByteArray jsonData = jsonDoc.toJson();
  27.         networkManager->post(request, jsonData);
  28.     });
  29. }
  30. MainWindow::~MainWindow()
  31. {
  32.     delete ui;
  33. }
  34. void MainWindow::replyFinished(QNetworkReply *reply)
  35. {
  36.     if (reply->error() == QNetworkReply::NoError) {
  37.         QByteArray responseData = reply->readAll();
  38.         qDebug() << "Response data:" << responseData;
  39.     } else {
  40.         qDebug() << "Network error:" << reply->errorString();
  41.     }
  42.     reply->deleteLater();
  43. }
复制代码
觉得有资助的话,打赏一下呗。。
           

需要商务合作(定制程序)的欢迎私信!! 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4