]> git.sur5r.net Git - minitube/blob - lib/http/src/http.h
New upstream version 3.5
[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     HttpReply *put(const QUrl &url, const QByteArray &body, const QByteArray &contentType);
39     HttpReply *deleteResource(const QUrl &url);
40
41 private:
42     QMap<QByteArray, QByteArray> requestHeaders;
43     int readTimeout;
44     int maxRetries;
45 };
46
47 #endif // HTTP_H