]> git.sur5r.net Git - minitube/blob - lib/http/src/http.h
8ae56cf764b254c197d9bec6b69dedfc14a882fb
[minitube] / lib / http / src / http.h
1 #ifndef HTTP_H
2 #define HTTP_H
3
4 #include <QtNetwork>
5
6 #include "httpreply.h"
7 #include "httprequest.h"
8
9 class Http {
10 public:
11     static Http &instance();
12     static const QMap<QByteArray, QByteArray> &getDefaultRequestHeaders();
13     static void setDefaultReadTimeout(int timeout);
14
15     Http();
16
17     void setRequestHeaders(const QMap<QByteArray, QByteArray> &headers);
18     QMap<QByteArray, QByteArray> &getRequestHeaders();
19     void addRequestHeader(const QByteArray &name, const QByteArray &value);
20
21     void setReadTimeout(int timeout);
22     int getReadTimeout() { return readTimeout; }
23
24     int getMaxRetries() const;
25     void setMaxRetries(int value);
26
27     QNetworkReply *networkReply(const HttpRequest &req);
28     virtual HttpReply *request(const HttpRequest &req);
29     HttpReply *
30     request(const QUrl &url,
31             QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation,
32             const QByteArray &body = QByteArray(),
33             uint offset = 0);
34     HttpReply *get(const QUrl &url);
35     HttpReply *head(const QUrl &url);
36     HttpReply *post(const QUrl &url, const QMap<QString, QString> &params);
37     HttpReply *post(const QUrl &url, const QByteArray &body, const QByteArray &contentType);
38
39 private:
40     QMap<QByteArray, QByteArray> requestHeaders;
41     int readTimeout;
42     int maxRetries;
43 };
44
45 #endif // HTTP_H