#ifndef QHTTP_H
#define QHTTP_H
#include <QtCore/qobject.h>
#include <QtCore/qstringlist.h>
#include <QtCore/qmap.h>
#include <QtCore/qpair.h>
typedef enum QtValidLicenseForNetworkModule QtNetworkModule;
#ifndef QT_NO_HTTP
struct QTcpSocket;
struct QHttpPrivate;
struct QHttpHeaderPrivate;
class QHttpHeader{
public: QHttpHeader();
public: QHttpHeader(class QHttpHeader const & header);
public: QHttpHeader(class QString const & str);
public: virtual ~QHttpHeader();
public: class QHttpHeader& operator =(class QHttpHeader const & h);
public: void setValue(class QString const & key, class QString const & value);
public: void setValues(class QList < class QPair < class QString, class QString > > const & values);
public: void addValue(class QString const & key, class QString const & value);
public: class QList < class QPair < class QString, class QString > > values() const
public: bool hasKey(class QString const & key) const
public: class QStringList keys() const
public: class QString value(class QString const & key) const
public: class QStringList allValues(class QString const & key) const
public: void removeValue(class QString const & key);
public: void removeAllValues(class QString const & key);
public: bool hasContentLength() const
public: uint contentLength() const
public: void setContentLength(int len);
public: bool hasContentType() const
public: class QString contentType() const
public: void setContentType(class QString const & type);
public: virtual class QString toString() const
public: bool isValid() const
public: virtual int majorVersion() const = 0;
public: virtual int minorVersion() const = 0;
protected: virtual bool parseLine(class QString const & line, int number);
protected: bool parse(class QString const & str);
protected: void setValid(bool);
protected: QHttpHeader(struct QHttpHeaderPrivate& dd, class QString const & str = QString::QString());
protected: QHttpHeader(struct QHttpHeaderPrivate& dd, class QHttpHeader const & header);
protected: struct QHttpHeaderPrivate* d_ptr;
private: inline struct QHttpHeaderPrivate* d_func();
private: inline struct QHttpHeaderPrivate const * d_func() const
friend struct QHttpHeaderPrivate;
};
struct QHttpResponseHeaderPrivate;
class QHttpResponseHeader: public QHttpHeader{
public: QHttpResponseHeader();
public: QHttpResponseHeader(class QHttpResponseHeader const & header);
public: QHttpResponseHeader(class QString const & str);
public: QHttpResponseHeader(int code, class QString const & text = QString::QString(), int majorVer = 1, int minorVer = 1);
public: class QHttpResponseHeader& operator =(class QHttpResponseHeader const & header);
public: void setStatusLine(int code, class QString const & text = QString::QString(), int majorVer = 1, int minorVer = 1);
public: int statusCode() const
public: class QString reasonPhrase() const
public: virtual int majorVersion() const
public: virtual int minorVersion() const
public: virtual class QString toString() const
protected: virtual bool parseLine(class QString const & line, int number);
private: inline struct QHttpResponseHeaderPrivate* d_func();
private: inline struct QHttpResponseHeaderPrivate const * d_func() const
friend struct QHttpResponseHeaderPrivate;
friend struct QHttpPrivate;
};
struct QHttpRequestHeaderPrivate;
class QHttpRequestHeader: public QHttpHeader{
public: QHttpRequestHeader();
public: QHttpRequestHeader(class QString const & method, class QString const & path, int majorVer = 1, int minorVer = 1);
public: QHttpRequestHeader(class QHttpRequestHeader const & header);
public: QHttpRequestHeader(class QString const & str);
public: class QHttpRequestHeader& operator =(class QHttpRequestHeader const & header);
public: void setRequest(class QString const & method, class QString const & path, int majorVer = 1, int minorVer = 1);
public: class QString method() const
public: class QString path() const
public: virtual int majorVersion() const
public: virtual int minorVersion() const
public: virtual class QString toString() const
protected: virtual bool parseLine(class QString const & line, int number);
private: inline struct QHttpRequestHeaderPrivate* d_func();
private: inline struct QHttpRequestHeaderPrivate const * d_func() const
friend struct QHttpRequestHeaderPrivate;
};
class QHttp: public QObject{
public: virtual struct QMetaObject const * metaObject() const
public: static struct QMetaObject const staticMetaObject;
public: virtual void* qt_metacast(char const *);
public: static inline class QString tr(char const * s, char const * c = 0);
public: static inline class QString trUtf8(char const * s, char const * c = 0);
public: static inline class QString tr(char const * s, char const * c, int n);
public: static inline class QString trUtf8(char const * s, char const * c, int n);
public: virtual int qt_metacall(enum QMetaObject::Call, int, void* *);
public: explicit QHttp(class QObject* parent = 0);
public: QHttp(class QString const & hostname, quint16 port = 80, class QObject* parent = 0);
public: virtual ~QHttp();
public: enum State{
Unconnected = 0,
HostLookup = 1,
Connecting = 2,
Sending = 3,
Reading = 4,
Connected = 5,
Closing = 6,
};
public: enum Error{
NoError = 0,
UnknownError = 1,
HostNotFound = 2,
ConnectionRefused = 3,
UnexpectedClose = 4,
InvalidResponseHeader = 5,
WrongContentLength = 6,
Aborted = 7,
};
public: int setHost(class QString const & hostname, quint16 port = 80);
public: int setSocket(struct QTcpSocket* socket);
public: int setUser(class QString const & username, class QString const & password = QString::QString());
public: int setProxy(class QString const & host, int port, class QString const & username = QString::QString(), class QString const & password = QString::QString());
public: int get(class QString const & path, class QIODevice* to = 0);
public: int post(class QString const & path, class QIODevice* data, class QIODevice* to = 0);
public: int post(class QString const & path, class QByteArray const & data, class QIODevice* to = 0);
public: int head(class QString const & path);
public: int request(class QHttpRequestHeader const & header, class QIODevice* device = 0, class QIODevice* to = 0);
public: int request(class QHttpRequestHeader const & header, class QByteArray const & data, class QIODevice* to = 0);
public: int closeConnection();
public: int close();
public: qint64 bytesAvailable() const
public: qint64 read(char* data, qint64 maxlen);
public: class QByteArray readAll();
public: int currentId() const
public: class QIODevice* currentSourceDevice() const
public: class QIODevice* currentDestinationDevice() const
public: class QHttpRequestHeader currentRequest() const
public: class QHttpResponseHeader lastResponse() const
public: bool hasPendingRequests() const
public: void clearPendingRequests();
public: enum QHttp::State state() const
public: enum QHttp::Error error() const
public: class QString errorString() const
public: void abort();
protected: void stateChanged(int);
protected: void responseHeaderReceived(class QHttpResponseHeader const & resp);
protected: void readyRead(class QHttpResponseHeader const & resp);
protected: void dataSendProgress(int, int);
protected: void dataReadProgress(int, int);
protected: void requestStarted(int);
protected: void requestFinished(int, bool);
protected: void done(bool);
private: QHttp(class QHttp const &);
private: class QHttp& operator =(class QHttp const &);
private: inline struct QHttpPrivate* d_func();
private: inline struct QHttpPrivate const * d_func() const
friend struct QHttpPrivate;
friend struct QHttpNormalRequest;
friend struct QHttpSetHostRequest;
friend struct QHttpSetSocketRequest;
friend struct QHttpSetUserRequest;
friend struct QHttpSetProxyRequest;
friend struct QHttpCloseRequest;
friend struct QHttpPGHRequest;
};
struct QHttpNormalRequest;
struct QHttpSetHostRequest;
struct QHttpSetSocketRequest;
struct QHttpSetUserRequest;
struct QHttpSetProxyRequest;
struct QHttpCloseRequest;
struct QHttpPGHRequest;
#endif // QT_NO_HTTP
#endif // QHTTP_H