pqhttpformdata.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include "pqhttpformdata.h"
  2. #include <QNetworkReply>
  3. namespace PQ {
  4. PQHttpFormData::PQHttpFormData(QObject *parent) : QHttpMultiPart(QHttpMultiPart::FormDataType,parent)
  5. {
  6. }
  7. void PQHttpFormData::set(const QString & key,const QString & v)
  8. {
  9. QHttpPart textPart;
  10. textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QString("form-data; name=\"%1\"").arg(key));
  11. textPart.setBody(v.toUtf8());
  12. this->append(textPart);
  13. }
  14. void PQHttpFormData::set(const QMap<QString,QString> & v)
  15. {
  16. for(auto begin = v.begin(); begin != v.end(); ++begin){
  17. set(begin.key(),begin.value());
  18. }
  19. }
  20. void PQHttpFormData::set(const QHash<QString,QString> & v)
  21. {
  22. for(auto begin = v.begin(); begin != v.end(); ++begin){
  23. set(begin.key(),begin.value());
  24. }
  25. }
  26. QString PQHttpFormData::contentType()
  27. {
  28. return QString("multipart/form-data;boundary=%1").arg(QString(this->boundary()));
  29. }
  30. QNetworkReply * PQHttpFormData::postThis(QNetworkAccessManager * manger,QNetworkRequest & request)
  31. {
  32. request.setHeader(QNetworkRequest::ContentTypeHeader,contentType());
  33. auto rep = manger->post(request,this);
  34. this->setParent(rep);
  35. return rep;
  36. }
  37. QNetworkReply * PQHttpFormData::putThis(QNetworkAccessManager * manger,QNetworkRequest & request)
  38. {
  39. request.setHeader(QNetworkRequest::ContentTypeHeader,contentType());
  40. auto rep = manger->put(request,this);
  41. this->setParent(rep);
  42. return rep;
  43. }
  44. }