Bonjour,

Je fait actuellement quelques recherches sur un projet, avec Qt 4.8.
Dans ce projet je doit me connecter sur un serveur web sous Apache2.
Pour de meilleurs performances on voudrais activer le mod_deflate en out et income.
Sur les different paquets HTTP que je doit envoyer je doit donc executer un qCompress.
Cependant, Les differentes classes utilisé dan 4.7 et avant sont maintenant déprécié, J'ai donc eu du mal a trouver les resources nécessaires pour mettre ce procédé en place. Je voudrais donc verifier auprès de vous si j'ai correctement tout compris.

Voici ce que j'ai compris en lisant la documentation officielle :

  • Je doit en premier créer un objet QHttpPart
  • Lui rajouter un header "Content-Encoding" egale à "gzip"
  • Compresser le futur body avec qCompress
  • Setter le Body
  • rajouter l'objet QHttpPart dans un objet QHttpMultipart
  • Creer les différents objets suivant : QUrl, QNetworkRequest & QNetworkManagement
  • Envoyer les headers
  • Envoyer le paquet via post


Est-ce que je me suis trompé?

Voici le code que j'en ai déduit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
 
QHttpPart textPart;
textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"text\""));
textPart.setRawHeader("Content-Encoding", "gzip");
textPart.setBody(qCompress("my text"));
 
multiPart->append(textPart);
 
QUrl url("http://my.server.tld");
QNetworkRequest request(url);
 
QNetworkAccessManager manager;
QNetworkReply *headerReply = manager.head(request);
QNetworkReply *reply = manager.post(request, multiPart);
Merci d'avance!