hyperion.ng
QtHttpRequest.h
1 #ifndef QTHTTPREQUEST_H
2 #define QTHTTPREQUEST_H
3 
4 #include <QObject>
5 #include <QString>
6 #include <QByteArray>
7 #include <QHash>
8 #include <QUrl>
9 #include <QHostAddress>
10 #include <QMap>
11 
12 class QtHttpServer;
14 
15 using QtHttpPostData = QMap<QString,QByteArray>;
16 
17 class QtHttpRequest : public QObject {
18  Q_OBJECT
19 
20 public:
21  explicit QtHttpRequest (QtHttpClientWrapper * client, QtHttpServer * parent);
22 
23  struct ClientInfo {
24  QHostAddress serverAddress;
25  QHostAddress clientAddress;
26  };
27 
28  int getRawDataSize (void) const;
29  QUrl getUrl (void) const;
30  QString getCommand (void) const;
31  QByteArray getRawData (void) const;
32  QList<QByteArray> getHeadersList (void) const;
33  QtHttpClientWrapper * getClient (void) const;
34 
35  QByteArray getHeader (const QByteArray & header) const;
36  QtHttpPostData getPostData (void) const;
37 
38  ClientInfo getClientInfo (void) const;
39 
40 public slots:
41  void setUrl (const QUrl & url);
42  void setCommand (const QString & command);
43  void setClientInfo (const QHostAddress & server, const QHostAddress & client);
44  void addHeader (const QByteArray & header, const QByteArray & value);
45  void appendRawData (const QByteArray & data);
46  void setPostData (const QtHttpPostData & data);
47 
48 private:
49  QUrl m_url;
50  QString m_command;
51  QByteArray m_data;
52  QtHttpServer * m_serverHandle;
53  QtHttpClientWrapper * m_clientHandle;
54  QHash<QByteArray, QByteArray> m_headersHash;
55  ClientInfo m_clientInfo;
56  QtHttpPostData m_postData;
57 };
58 
59 #endif // QTHTTPREQUEST_H
Definition: QtHttpRequest.h:17
Definition: QtHttpServer.h:37
Definition: QtHttpClientWrapper.h:15
Definition: QtHttpRequest.h:23