00001
00002
00003 #ifndef QHTTPSERVLETREQUEST_H
00004 #define QHTTPSERVLETREQUEST_H
00005
00006 #include <qstring.h>
00007 #include <qdatetime.h>
00008 #include <qmap.h>
00009 #include <qurl.h>
00010
00011 #include <qservletrequest.h>
00012
00018 class QHttpServletRequest : public QServletRequest
00019 {
00020 public:
00021 QHttpServletRequest();
00022 virtual ~QHttpServletRequest();
00023
00025 QString method() const { return meth; }
00026
00028 QString pathInfo() const { return url.path(); }
00029
00031 QString queryString() const { return url.query(); }
00032
00034 QString requestURI() const { return uri; }
00035
00037 QString version() const { return ver; }
00038
00039
00040
00041
00042
00044 QStringList headerNames() const { return hdrNames; }
00045
00047 QString header( const QString &name ) const { return headers[name]; }
00048
00054 QDateTime dateHeader( const QString &name ) const;
00055
00060 int intHeader( const QString &name, bool *ok=0 ) const;
00061
00062
00063
00064
00065
00066 bool readRequest( QTextStream *in );
00067 bool readMethod( const QString &line );
00068 bool hasHeaders() const { return hasHdrs; }
00069 bool readHeader( const QString &line );
00070 bool readHeaders( const QStringList &lines );
00071
00073 QString dump();
00074
00075 protected:
00076 void addHeader( const QString &name, const QString &val );
00077
00078 private:
00079 QString meth;
00080 QString uri;
00081 QUrl url;
00082 QString ver;
00083 QStringList hdrNames;
00084 QMap<QString,QString> headers;
00085
00086 bool hasHdrs;
00087 };
00088
00089 #endif // QHTTPSERVLETREQUEST_H
00090
00091
00092
00093
00094