url.h
Go to the documentation of this file.
1 #ifndef HTTP_URL_H
2 #define HTTP_URL_H
3 
4 #include <QUrl>
5 #include <QNetworkAccessManager>
6 #include "observable.h"
7 #include "types.h"
8 
9 namespace dnai {
10  namespace http {
11  enum BodyType {
12  DEFAULT = 0,
15  };
16  class Url: public QObject
17  {
18  Q_OBJECT
19  public:
20  Url(QNetworkAccessManager *, QUrl const &);
21 
22  private:
23  QNetworkAccessManager *m_manager;
24 
25  QUrl m_url;
26  QString m_method;
27 
28  QMap<QString, QString> m_headers;
29  QMap<QString, QString> m_params;
30 
32  QByteArray m_body;
33  QHttpMultiPart *m_multiPart;
34  QIODevice *m_device;
35 
36  public:
37  Observable &head();
38 
39  Observable &get();
40 
41  Observable &post(QByteArray);
42  Observable &post(QJsonObject);
44  Observable &post(QHttpMultiPart *);
45  Observable &post(QIODevice *);
46 
47  Observable &put(QByteArray);
48  Observable &put(QJsonObject);
50  Observable &put(QHttpMultiPart *);
51  Observable &put(QIODevice *);
52 
53  Observable &patch(QByteArray);
54  Observable &patch(QJsonObject);
56  Observable &patch(QHttpMultiPart *);
57  Observable &patch(QIODevice *);
58 
59  Observable &remove();
61 
62  public:
63  Url *headers(const Headers &);
64  Url *params(const Params &);
65 
66  public:
67  void addHeader(QString const &, QString const &);
68  void removeHeader(QString const &);
69 
70  private:
72  QUrlQuery makeQuery() const;
73  };
74  }
75 }
76 
77 #endif // HTTP_URL_H
Observable & sendRequest()
Definition: url.cpp:175
QUrl m_url
Definition: url.h:25
QMap< QString, QString > Headers
Definition: types.h:8
QMap< QString, QString > Form
Definition: types.h:11
Observable & post(QByteArray)
Definition: url.cpp:24
void removeHeader(QString const &)
Definition: url.cpp:170
QMap< QString, QString > m_headers
Definition: url.h:28
Url(QNetworkAccessManager *, QUrl const &)
Definition: url.cpp:7
QNetworkAccessManager * m_manager
Definition: url.h:23
BodyType
Definition: url.h:11
QHttpMultiPart * m_multiPart
Definition: url.h:33
Definition: url.h:12
Observable & options()
Definition: url.cpp:145
QByteArray m_body
Definition: url.h:32
QIODevice * m_device
Definition: url.h:34
QString m_method
Definition: url.h:26
Observable & patch(QByteArray)
Definition: url.cpp:101
Definition: observable.h:14
Definition: url.h:16
Observable & head()
Definition: url.cpp:12
void addHeader(QString const &, QString const &)
Definition: url.cpp:165
Definition: api.h:13
QMap< QString, QString > m_params
Definition: url.h:29
QMap< QString, QString > Params
Definition: types.h:10
Definition: url.h:13
Url * params(const Params &)
Definition: url.cpp:159
Observable & put(QByteArray)
Definition: url.cpp:63
QUrlQuery makeQuery() const
Definition: url.cpp:230
Definition: url.h:14
Url * headers(const Headers &)
Definition: url.cpp:151
BodyType m_bodyType
Definition: url.h:31