TreeFrogFramework: src/thttprequest.h Source File

35public:

38 THttpRequest(const THttpRequestHeader &header, const QByteArray &body, const QHostAddress &clientAddress, TActionContext *context);

39 THttpRequest(const QByteArray &header, const QString &filePath, const QHostAddress &clientAddress, TActionContext *context);

42

48 QString parameter(const QString &name) const;

49 QVariantMap allParameters() const;

50

51 bool hasQuery() const { return !d->queryItems.isEmpty(); }

52 bool hasQueryItem(const QString &name) const;

53 QString queryItemValue(const QString &name) const;

54 QString queryItemValue(const QString &name, const QString &defaultValue) const;

55 QStringList allQueryItemValues(const QString &name) const;

56 QStringList queryItemList(const QString &key) const;

57 QVariantList queryItemVariantList(const QString &key) const;

58 QVariantMap queryItems(const QString &key) const;

59 QVariantMap queryItems() const;

60 bool hasForm() const { return !d->formItems.isEmpty(); }

61 bool hasFormItem(const QString &name) const;

62 QString formItemValue(const QString &name) const;

63 QString formItemValue(const QString &name, const QString &defaultValue) const;

64 QStringList allFormItemValues(const QString &name) const;

65 QStringList formItemList(const QString &key) const;

66 QVariantList formItemVariantList(const QString &key) const;

67 QVariantMap formItems(const QString &key) const;

68 QVariantMap formItems() const;

70 QByteArray cookie(const QString &name) const;

71 QList<TCookie> cookies() const;

72 QHostAddress clientAddress() const { return d->clientAddress; }

73 QHostAddress originatingClientAddress() const;

74 QIODevice *rawBody();

75 bool hasJson() const { return !d->jsonData.isNull(); }

76 const QJsonDocument &jsonData() const { return d->jsonData; }

77

78 static QList<THttpRequest> generate(QByteArray &byteArray, const QHostAddress &address, TActionContext *context);

79 static QList<QPair<QString, QString>> fromQuery(const QString &query);

80

81protected:

82 QByteArray boundary() const;

83

84 static bool hasItem(const QString &name, const QList<QPair<QString, QString>> &items);

85 static QString itemValue(const QString &name, const QString &defaultValue, const QList<QPair<QString, QString>> &items);

86 static QStringList allItemValues(const QString &name, const QList<QPair<QString, QString>> &items);

87 static QVariantList itemVariantList(const QString &key, const QList<QPair<QString, QString>> &items);

88 static QVariantMap itemMap(const QList<QPair<QString, QString>> &items);

89 static QVariantMap itemMap(const QString &key, const QList<QPair<QString, QString>> &items);

90

91private:

92 void parseBody(const QByteArray &body, const THttpRequestHeader &header, TActionContext *context);

93

94 QSharedDataPointer<THttpRequestData> d;

95 QIODevice *bodyDevice {nullptr};

96

98};