#pragma once #include #include #include #include #include "HttpPacket.h" namespace Incart::Net::WebApi { class HttpRequest final : public HttpPacket { private: QString m_method; QString m_uri; public: HttpRequest(const QString& method_, const QString& uri_, const QString& httpVersion_ = "1.1") : HttpPacket(httpVersion_) , m_method(method_) , m_uri(uri_) { } QString getMethod() { return m_method; } QString getUri() { return m_uri; } bool parseStartLine(const QString& text) override { auto startLineParts = text.split(' '); if (startLineParts.size() != 3) { return false; } QString httpVersion = startLineParts[2]; auto httpVersionParts = httpVersion.split('/'); if (httpVersionParts[0].compare("HTTP", Qt::CaseInsensitive) != 0) { return false; } m_method = startLineParts[0]; m_uri = startLineParts[1]; m_httpVersion = httpVersionParts[1]; return true; } QString convertStartLineToString() override { return m_method + " " + m_uri + " HTTP/" + m_httpVersion; } }; } // namespace Incart::Net::WebApi