QRestAccessManager Class
QRestAccessManager est un wrapper pratique pour QNetworkAccessManager. En savoir plus...
| En-tête : | #include <QRestAccessManager> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake : | QT += network |
| Depuis : | Qt 6.7 |
| Hérite de : | QObject |
- Liste de tous les membres, y compris les membres hérités
- QRestAccessManager fait partie de l'API de programmation réseau.
Remarque : toutes les fonctions de cette classe sont réentrantes.
Fonctions publiques
| QRestAccessManager(QNetworkAccessManager *manager, QObject *parent = nullptr) | |
| virtual | ~QRestAccessManager() override |
| QNetworkReply * | deleteResource(const QNetworkRequest &request) |
| QNetworkReply * | deleteResource(const QNetworkRequest &request, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | get(const QNetworkRequest &request) |
| QNetworkReply * | get(const QNetworkRequest &request, const QByteArray &data) |
| QNetworkReply * | get(const QNetworkRequest &request, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | get(const QNetworkRequest &request, const QByteArray &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | get(const QNetworkRequest &request, QIODevice *data) |
| QNetworkReply * | get(const QNetworkRequest &request, const QJsonDocument &data) |
| QNetworkReply * | get(const QNetworkRequest &request, QIODevice *data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | get(const QNetworkRequest &request, const QJsonDocument &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | head(const QNetworkRequest &request) |
| QNetworkReply * | head(const QNetworkRequest &request, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkAccessManager * | networkAccessManager() const |
| QNetworkReply * | patch(const QNetworkRequest &request, const QJsonDocument &data) |
| QNetworkReply * | patch(const QNetworkRequest &request, const QJsonDocument &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | patch(const QNetworkRequest &request, QIODevice *data) |
| QNetworkReply * | patch(const QNetworkRequest &request, const QByteArray &data) |
| QNetworkReply * | patch(const QNetworkRequest &request, const QVariantMap &data) |
| QNetworkReply * | patch(const QNetworkRequest &request, QIODevice *data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | patch(const QNetworkRequest &request, const QByteArray &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | patch(const QNetworkRequest &request, const QVariantMap &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | post(const QNetworkRequest &request, const QJsonDocument &data) |
| QNetworkReply * | post(const QNetworkRequest &request, const QJsonDocument &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | post(const QNetworkRequest &request, QHttpMultiPart *data) |
| QNetworkReply * | post(const QNetworkRequest &request, QIODevice *data) |
| QNetworkReply * | post(const QNetworkRequest &request, const QByteArray &data) |
| QNetworkReply * | post(const QNetworkRequest &request, const QVariantMap &data) |
| QNetworkReply * | post(const QNetworkRequest &request, QHttpMultiPart *data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | post(const QNetworkRequest &request, QIODevice *data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | post(const QNetworkRequest &request, const QByteArray &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | post(const QNetworkRequest &request, const QVariantMap &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | put(const QNetworkRequest &request, const QJsonDocument &data) |
| QNetworkReply * | put(const QNetworkRequest &request, const QJsonDocument &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | put(const QNetworkRequest &request, QHttpMultiPart *data) |
| QNetworkReply * | put(const QNetworkRequest &request, QIODevice *data) |
| QNetworkReply * | put(const QNetworkRequest &request, const QByteArray &data) |
| QNetworkReply * | put(const QNetworkRequest &request, const QVariantMap &data) |
| QNetworkReply * | put(const QNetworkRequest &request, QHttpMultiPart *data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | put(const QNetworkRequest &request, QIODevice *data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | put(const QNetworkRequest &request, const QByteArray &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | put(const QNetworkRequest &request, const QVariantMap &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | sendCustomRequest(const QNetworkRequest &request, const QByteArray &method, const QByteArray &data) |
| QNetworkReply * | sendCustomRequest(const QNetworkRequest &request, const QByteArray &method, const QByteArray &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | sendCustomRequest(const QNetworkRequest &request, const QByteArray &method, QHttpMultiPart *data) |
| QNetworkReply * | sendCustomRequest(const QNetworkRequest &request, const QByteArray &method, QIODevice *data) |
| QNetworkReply * | sendCustomRequest(const QNetworkRequest &request, const QByteArray &method, QHttpMultiPart *data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
| QNetworkReply * | sendCustomRequest(const QNetworkRequest &request, const QByteArray &method, QIODevice *data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback) |
Description détaillée
QRestAccessManager est un wrapper pratique s'appuyant sur QNetworkAccessManager. Il adapte les types de données et les méthodes HTTP utiles aux applications clientes RESTful classiques.
Les fonctionnalités réseau habituelles de Qt sont accessibles en configurant directement l’ QNetworkAccessManager encapsulé. QRestAccessManager ne prend pas possession de l’ QNetworkAccessManager encapsulé.
QRestAccessManager et les classes QRestReply associées ne peuvent être utilisées que dans le thread où elles se trouvent. Voir QObject thread affinity pour plus d’informations.
Émission de requêtes réseau et gestion des réponses
Les requêtes réseau sont lancées par un appel de fonction correspondant à la méthode HTTP souhaitée, telle que ` get() ` et ` post()`.
Utilisation des signaux et des slots
La fonction renvoie un objet de type QNetworkReply*, dont les signaux peuvent être utilisés pour suivre l'exécution de la requête selon l'approche traditionnelle des signaux et slots de Qt.
Voici un exemple illustrant comment envoyer une requête GET et gérer la réponse :
QNetworkReply *reply = manager->get(request);
QObject::connect(reply, &QNetworkReply::finished, this, [reply]() {
// The reply may be wrapped in the finish handler:
QRestReply restReply(reply);
if (restReply.isSuccess())
// ...
});Utilisation des callbacks et des objets de contexte
Les fonctions prennent également en paramètres un objet de contexte de type QObject (sous-classe) et une fonction de rappel. La fonction de rappel prend un QRestReply& en paramètre. La fonction de rappel peut être n’importe quelle fonction appelable, y compris un pointeur vers une fonction membre.
Ces callbacks sont appelés lorsque le traitement de la réponse est terminé (y compris si le traitement s’est arrêté en raison d’une erreur).
L’objet de contexte peut être de type ` nullptr`, bien que, d’une manière générale, cette pratique soit déconseillée. L’utilisation d’un objet de contexte valide garantit que, si celui-ci est détruit pendant le traitement de la requête, la fonction de rappel ne sera pas appelée. Les fonctions de rappel orphelines qui accèdent à un contexte détruit sont une source de dysfonctionnements de l’application.
Voici un exemple illustrant comment envoyer une requête GET et vérifier la réponse :
// With lambda
manager->get(request, this, [this](QRestReply &reply) {
if (reply.isSuccess()) {
// ...
}
});
// With member function
manager->get(request, this, &MyClass::handleFinished);De nombreuses fonctions acceptent des données à envoyer à un serveur. Ces données sont fournies en tant que deuxième paramètre après la requête.
Voici un exemple illustrant comment envoyer une requête POST et vérifier la réponse :
QJsonDocument myJson;
// ...
manager->post(request, myJson, this, [this](QRestReply &reply) {
if (!reply.isSuccess()) {
// ...
}
if (std::optional json = reply.readJson()) {
// use *json
}
});L’ QRestReply& fournie n’est valide que pendant l’exécution de la fonction de rappel. Si vous en avez besoin plus longtemps, vous pouvez soit la déplacer vers une autre QRestReply, soit en créer une nouvelle et l’initialiser avec la QNetworkReply (voir QRestReply::networkReply()).
Types de données pris en charge
Le tableau suivant récapitule les méthodes et les types de données pris en charge. « X » signifie « pris en charge ».
| Type de données | get() | post() | put() | head() | patch() | deleteResource() | sendCustomRequest() |
|---|---|---|---|---|---|---|---|
| Aucune donnée | X | - | - | X | - | X | - |
| QByteArray | X | X | X | - | X | - | X |
| QJsonDocument *) | X | X | X | - | X | - | - |
| QVariantMap **) | - | X | X | - | X | - | - |
| QHttpMultiPart | - | X | X | - | - | - | X |
| QIODevice | X | X | X | - | X | - | X |
*) QJsonDocument est envoyé au format QJsonDocument::Compact, et l'en-tête Content-Type est défini sur application/json si l'en-tête Content-Type n'a pas été défini
**) QVariantMap est converti en et traité comme un QJsonObject
Voir également QRestReply, QNetworkRequestFactory et QNetworkAccessManager.
Documentation des fonctions membres
[explicit] QRestAccessManager::QRestAccessManager(QNetworkAccessManager *manager, QObject *parent = nullptr)
Crée un objet QRestAccessManager et définit parent comme objet parent, ainsi que manager comme QNetworkAccessManager sous-jacente utilisée pour la communication.
Voir également networkAccessManager().
[override virtual noexcept] QRestAccessManager::~QRestAccessManager()
Supprime l'objet « QRestAccessManager ».
QNetworkReply *QRestAccessManager::deleteResource(const QNetworkRequest &request)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::deleteResource(const QNetworkRequest &request, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
Crée un objet ` HTTP DELETE ` basé sur ` request`.
Les objets facultatifs ` callback ` et ` context ` peuvent être fournis pour gérer la fin de la requête, comme illustré ci-dessous :
manager->deleteResource(request, this, [this](QRestReply &reply) {
if (reply.isSuccess())
// ...
});Il est également possible d’utiliser les signaux de l’objet QNetworkReply* renvoyé. Pour plus d’informations, consultez Issuing Network Requests and Handling Replies.
deleteResource() La requête ne prend pas en charge la fourniture de données.
Voir également QRestReply.
QNetworkReply *QRestAccessManager::get(const QNetworkRequest &request)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::get(const QNetworkRequest &request, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
Crée un objet ` HTTP GET ` basé sur ` request`.
Les objets facultatifs ` callback ` et ` context ` peuvent être fournis pour gérer l'achèvement de la requête, comme illustré ci-dessous :
manager->get(request, this, [this](QRestReply &reply) {
if (!reply.isSuccess())
// handle error
if (std::optional json = reply.readJson())
// use *json
});Il est également possible d’utiliser les signaux de l’objet QNetworkReply* renvoyé. Pour plus d’informations, consultez Issuing Network Requests and Handling Replies.
Voir également QRestReply.
QNetworkReply *QRestAccessManager::get(const QNetworkRequest &request, const QByteArray &data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::get(const QNetworkRequest &request, const QByteArray &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
Crée un objet ` HTTP GET ` basé sur ` request ` et l'objet ` data` fourni.
Les objets facultatifs ` callback ` et ` context ` peuvent être fournis pour gérer l'achèvement de la requête, comme illustré ci-dessous :
manager->get(request, myData, this, [this](QRestReply &reply) {
if (reply.isSuccess())
// ...
});Il est également possible d’utiliser les signaux de l’objet QNetworkReply* renvoyé. Pour plus d’informations, consultez Issuing Network Requests and Handling Replies.
Voir également QRestReply.
QNetworkReply *QRestAccessManager::get(const QNetworkRequest &request, QIODevice *data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::get(const QNetworkRequest &request, QIODevice *data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
QNetworkReply *QRestAccessManager::get(const QNetworkRequest &request, const QJsonDocument &data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::get(const QNetworkRequest &request, const QJsonDocument &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
QNetworkReply *QRestAccessManager::head(const QNetworkRequest &request)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::head(const QNetworkRequest &request, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
Crée un objet ` HTTP HEAD ` basé sur ` request`.
Les objets facultatifs ` callback ` et ` context ` peuvent être fournis pour gérer l'achèvement de la requête, comme illustré ci-dessous :
manager->head(request, this, [this](QRestReply &reply) {
if (reply.isSuccess())
// ...
});Il est également possible d’utiliser les signaux de l’objet QNetworkReply* renvoyé. Pour plus d’informations, consultez Issuing Network Requests and Handling Replies.
head() La requête ne prend pas en charge la fourniture de données.
Voir également QRestReply.
QNetworkAccessManager *QRestAccessManager::networkAccessManager() const
Renvoie l'instance sous-jacente de ` QNetworkAccessManager `.
Voir aussi QNetworkAccessManager.
QNetworkReply *QRestAccessManager::patch(const QNetworkRequest &request, const QJsonDocument &data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::patch(const QNetworkRequest &request, const QJsonDocument &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
Crée un objet ` HTTP PATCH ` basé sur ` request`.
Les objets facultatifs ` callback ` et ` context ` peuvent être fournis pour gérer l'achèvement de la requête, comme illustré ci-dessous :
manager->patch(request, myData, this, [this](QRestReply &reply) {
if (reply.isSuccess())
// ...
});Il est également possible d'utiliser les signaux de l'objet ` QNetworkReply*` renvoyé. Pour plus d'informations, consultez Issuing Network Requests and Handling Replies.
La méthode ` patch() ` nécessite toujours un paramètre ` data `. Les types de données suivants sont pris en charge :
- QByteArray
- QJsonDocument *)
- QVariantMap **)
- QIODevice*
*) Envoyé au format QJsonDocument::Compact, et l’en-tête Content-Type est défini sur application/json si l’en-tête Content-Type n’a pas été défini **) QVariantMap est converti en et traité comme un QJsonObject
Voir également QRestReply.
QNetworkReply *QRestAccessManager::patch(const QNetworkRequest &request, QIODevice *data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::patch(const QNetworkRequest &request, QIODevice *data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
QNetworkReply *QRestAccessManager::patch(const QNetworkRequest &request, const QByteArray &data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::patch(const QNetworkRequest &request, const QByteArray &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
QNetworkReply *QRestAccessManager::patch(const QNetworkRequest &request, const QVariantMap &data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::patch(const QNetworkRequest &request, const QVariantMap &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
QNetworkReply *QRestAccessManager::post(const QNetworkRequest &request, const QJsonDocument &data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::post(const QNetworkRequest &request, const QJsonDocument &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
Crée un objet ` HTTP POST ` basé sur ` request`.
Les objets facultatifs ` callback ` et ` context ` peuvent être fournis pour gérer l'achèvement de la requête, comme illustré ci-dessous :
manager->post(request, myData, this, [this](QRestReply &reply) {
if (reply.isSuccess())
// ...
});Il est également possible d’utiliser les signaux de l’objet QNetworkReply* renvoyé. Pour plus d’informations, consultez Issuing Network Requests and Handling Replies.
La méthode ` post() ` nécessite toujours le paramètre ` data `. Les types de données suivants sont pris en charge :
*) Envoyé au format « QJsonDocument::Compact », et l'en-tête « Content-Type » est défini sur « application/json » si l'en-tête « Content-Type » n'a pas été défini **) « QVariantMap » est converti en et traité comme un QJsonObject
Voir également QRestReply.
QNetworkReply *QRestAccessManager::post(const QNetworkRequest &request, QHttpMultiPart *data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::post(const QNetworkRequest &request, QHttpMultiPart *data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
QNetworkReply *QRestAccessManager::post(const QNetworkRequest &request, QIODevice *data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::post(const QNetworkRequest &request, QIODevice *data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
QNetworkReply *QRestAccessManager::post(const QNetworkRequest &request, const QByteArray &data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::post(const QNetworkRequest &request, const QByteArray &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
QNetworkReply *QRestAccessManager::post(const QNetworkRequest &request, const QVariantMap &data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::post(const QNetworkRequest &request, const QVariantMap &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
QNetworkReply *QRestAccessManager::put(const QNetworkRequest &request, const QJsonDocument &data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::put(const QNetworkRequest &request, const QJsonDocument &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
Crée un objet ` HTTP PUT ` basé sur ` request`.
Les objets facultatifs ` callback ` et ` context ` peuvent être fournis pour gérer l'achèvement de la requête, comme illustré ci-dessous :
manager->put(request, myData, this, [this](QRestReply &reply) {
if (reply.isSuccess())
// ...
});Il est également possible d’utiliser les signaux de l’objet QNetworkReply* renvoyé. Pour plus d’informations, consultez Issuing Network Requests and Handling Replies.
La méthode ` put() ` nécessite toujours le paramètre ` data `. Les types de données suivants sont pris en charge :
*) Envoyé au format « QJsonDocument::Compact », et l'en-tête « Content-Type » est défini sur « application/json » si l'en-tête « Content-Type » n'a pas été défini **) « QVariantMap » est converti en et traité comme un QJsonObject
Voir également QRestReply.
QNetworkReply *QRestAccessManager::put(const QNetworkRequest &request, QHttpMultiPart *data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::put(const QNetworkRequest &request, QHttpMultiPart *data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
QNetworkReply *QRestAccessManager::put(const QNetworkRequest &request, QIODevice *data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::put(const QNetworkRequest &request, QIODevice *data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
QNetworkReply *QRestAccessManager::put(const QNetworkRequest &request, const QByteArray &data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::put(const QNetworkRequest &request, const QByteArray &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
QNetworkReply *QRestAccessManager::put(const QNetworkRequest &request, const QVariantMap &data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::put(const QNetworkRequest &request, const QVariantMap &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
QNetworkReply *QRestAccessManager::sendCustomRequest(const QNetworkRequest &request, const QByteArray &method, const QByteArray &data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::sendCustomRequest(const QNetworkRequest &request, const QByteArray &method, const QByteArray &data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
Envoie une requête HTTP de type « request » avec une adresse de destination personnalisée ( method ) et l'adresse de destination fournie ( data).
Les objets facultatifs callback et context peuvent être fournis pour gérer l'achèvement de la requête, comme illustré ci-dessous :
manager->sendCustomRequest(request, "MYMETHOD", myData, this, [this](QRestReply &reply) {
if (reply.isSuccess())
// ...
});Il est également possible d’utiliser les signaux de l’objet QNetworkReply* renvoyé. Pour plus d’informations, consultez Issuing Network Requests and Handling Replies.
QNetworkReply *QRestAccessManager::sendCustomRequest(const QNetworkRequest &request, const QByteArray &method, QHttpMultiPart *data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::sendCustomRequest(const QNetworkRequest &request, const QByteArray &method, QHttpMultiPart *data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
QNetworkReply *QRestAccessManager::sendCustomRequest(const QNetworkRequest &request, const QByteArray &method, QIODevice *data)
template <typename Functor> requires if_compatible_callback<Functor> QNetworkReply *QRestAccessManager::sendCustomRequest(const QNetworkRequest &request, const QByteArray &method, QIODevice *data, const QRestAccessManager::ContextTypeForFunctor<Functor> *context, Functor &&callback)
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.