TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
qhttprequest.cpp
Go to the documentation of this file.
1 #include "qhttprequest.h"
2 #include "qhttpconnection.h"
3 
7 class QHttpRequestPrivate : public TTKPrivate<QHttpRequest>
8 {
9 public:
11 
15  QUrl m_url;
16  QString m_version;
17  QString m_remoteAddress;
18  quint16 m_remotePort;
19  QByteArray m_body;
20  bool m_success;
21 
22 };
23 
25  : m_connection(nullptr),
26  m_url("http://localhost/"),
27  m_success(false)
28 {
29 
30 }
31 
32 
33 
34 QHttpRequest::QHttpRequest(QHttpConnection *connection, QObject *parent)
35  : QObject(parent)
36 {
39  d->m_connection = connection;
40 }
41 
42 QString QHttpRequest::header(const QString &field)
43 {
45  return d->m_headers.value(field.toLower(), "");
46 }
47 
48 const HeaderHash &QHttpRequest::headers() const
49 {
51  return d->m_headers;
52 }
53 
54 const QString &QHttpRequest::httpVersion() const
55 {
57  return d->m_version;
58 }
59 
60 const QUrl &QHttpRequest::url() const
61 {
63  return d->m_url;
64 }
65 
66 const QString QHttpRequest::path() const
67 {
69  return d->m_url.path();
70 }
71 
72 const QString QHttpRequest::methodString() const
73 {
74  return MethodToString(method());
75 }
76 
78 {
80  return d->m_method;
81 }
82 
83 const QString &QHttpRequest::remoteAddress() const
84 {
86  return d->m_remoteAddress;
87 }
88 
89 quint16 QHttpRequest::remotePort() const
90 {
92  return d->m_remotePort;
93 }
94 
95 const QByteArray &QHttpRequest::body() const
96 {
98  return d->m_body;
99 }
100 
102 {
104  return d->m_success;
105 }
106 
108 {
109  connect(this, SIGNAL(data(const QByteArray &)), this, SLOT(appendBody(const QByteArray &)), Qt::UniqueConnection);
110 }
111 
113 {
114  const int index = staticMetaObject.indexOfEnumerator("HttpMethod");
115  return staticMetaObject.enumerator(index).valueToKey(method);
116 }
117 
118 void QHttpRequest::appendBody(const QByteArray &body)
119 {
121  d->m_body.append(body);
122 }
123 
125 {
127  d->m_method = method;
128 }
129 
130 void QHttpRequest::setVersion(const QString &version)
131 {
133  d->m_version = version;
134 }
135 
136 void QHttpRequest::setUrl(const QUrl &url)
137 {
139  d->m_url = url;
140 }
141 
143 {
145  d->m_headers = headers;
146 }
147 
148 void QHttpRequest::setSuccessful(bool success)
149 {
151  d->m_success = success;
152 }
153 
154 void QHttpRequest::setRemoteAddress(const QString &address)
155 {
157  d->m_remoteAddress = address;
158 }
159 
160 void QHttpRequest::setRemotePort(quint16 port)
161 {
163  d->m_remotePort = port;
164 }
HttpMethod
Request method enumeration.
Definition: qhttprequest.h:53
The class of the http connection.
void setUrl(const QUrl &url)
const QString methodString() const
Returns the method string for the request.
void setHeaders(const HeaderHash headers)
const QByteArray & body() const
Request body data, empty for non POST/PUT requests.
void setRemotePort(quint16 port)
void storeBody()
Utility function to make this request store all body data internally.
QHttpRequest(QHttpConnection *connection, QObject *parent=nullptr)
The class of the http request.
Definition: qhttprequest.h:32
void data(const QByteArray &data)
Emitted when new body data has been received.
QString header(const QString &field)
Get the value of a header.
const QString & httpVersion() const
The HTTP version of the request.
void setSuccessful(bool success)
void setVersion(const QString &version)
bool successful() const
If this request was successfully received.
void setRemoteAddress(const QString &address)
quint16 remotePort() const
Outbound connection port for the client.
void setMethod(HttpMethod method)
static QString MethodToString(HttpMethod method)
HttpMethod method() const
The method used for the request.
QHash< QString, QString > HeaderHash
QHttpConnection * m_connection
const QUrl & url() const
The complete URL for the request.
const QString & remoteAddress() const
IP Address of the client in dotted decimal format.
const QString path() const
The path portion of the query URL.
QHttpRequest::HttpMethod m_method
#define TTK_INIT_PRIVATE(Class)
Definition: ttkprivate.h:33
void appendBody(const QByteArray &body)
The class of the http request private.
Definition: qhttprequest.cpp:7
The class of the ttk private base.
Definition: ttkprivate.h:48
#define TTK_D(Class)
Definition: ttkprivate.h:41
const HeaderHash & headers() const
Return all the headers sent by the client.