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
00013 class DocWriter;
00014
00020 class QHttpServletRequest : public QServletRequest
00021 {
00022 public:
00023 QHttpServletRequest();
00024 virtual ~QHttpServletRequest();
00025
00027 QString method() const { return meth; }
00028
00030 QString pathInfo() const { return url.path(); }
00031
00033 QString queryString() const { return url.query(); }
00034
00036 QString requestURI() const { return uri; }
00037
00039 QString version() const { return ver; }
00040
00041
00042
00043
00044
00046 QStringList headerNames() const { return hdrNames; }
00047
00049 QString header( const QString &name ) const { return headers[name]; }
00050
00056 QDateTime dateHeader( const QString &name ) const;
00057
00062 int intHeader( const QString &name, bool *ok=0 ) const;
00063
00064
00065
00066
00067
00068 bool readRequest( QTextStream *in );
00069 bool readMethod( const QString &line );
00070 bool hasHeaders() const { return hasHdrs; }
00071 bool readHeader( const QString &line );
00072 bool readHeaders( const QStringList &lines );
00073
00075 void dump( DocWriter *doc );
00076
00077 protected:
00078 void addHeader( const QString &name, const QString &val );
00079
00080 private:
00081 QString meth;
00082 QString uri;
00083 QUrl url;
00084 QString ver;
00085 QStringList hdrNames;
00086 QMap<QString,QString> headers;
00087
00088 bool hasHdrs;
00089 };
00090
00091 #endif // QHTTPSERVLETREQUEST_H
00092
00093
00094
00095
00096