Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qhttpnetworkheader.cpp
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
#include "
qhttpnetworkheader_p.h
"
5
6
#include <algorithm>
7
8
QT_BEGIN_NAMESPACE
9
10
QHttpNetworkHeaderPrivate::QHttpNetworkHeaderPrivate
(
const
QUrl
&newUrl)
11
:
url
(newUrl)
12
{
13
}
14
15
qint64
QHttpNetworkHeaderPrivate::contentLength
()
const
16
{
17
bool
ok
=
false
;
18
// We are not using the headerField() method here because servers might send us multiple content-length
19
// headers which is crap (see QTBUG-15311). Therefore just take the first content-length header field.
20
QByteArray
value
=
parser
.
firstHeaderField
(
"content-length"
);
21
qint64
length
=
value
.
toULongLong
(&
ok
);
22
if
(
ok
)
23
return
length
;
24
return
-1;
// the header field is not set
25
}
26
27
void
QHttpNetworkHeaderPrivate::setContentLength
(
qint64
length
)
28
{
29
setHeaderField
(
"Content-Length"
,
QByteArray::number
(
length
));
30
}
31
32
QByteArray
QHttpNetworkHeaderPrivate::headerField
(
QByteArrayView
name
,
const
QByteArray
&defaultValue)
const
33
{
34
QList<QByteArray> allValues =
headerFieldValues
(
name
);
35
if
(allValues.isEmpty())
36
return
defaultValue;
37
else
38
return
allValues.join(
", "
);
39
}
40
41
QList<QByteArray>
QHttpNetworkHeaderPrivate::headerFieldValues
(
QByteArrayView
name
)
const
42
{
43
return
parser
.
headerFieldValues
(
name
);
44
}
45
46
void
QHttpNetworkHeaderPrivate::setHeaderField
(
const
QByteArray
&
name
,
const
QByteArray
&
data
)
47
{
48
parser
.
setHeaderField
(
name
,
data
);
49
}
50
51
void
QHttpNetworkHeaderPrivate::prependHeaderField
(
const
QByteArray
&
name
,
const
QByteArray
&
data
)
52
{
53
parser
.
prependHeaderField
(
name
,
data
);
54
}
55
56
QHttpHeaders
QHttpNetworkHeaderPrivate::headers
()
const
57
{
58
return
parser
.
headers
();
59
}
60
61
void
QHttpNetworkHeaderPrivate::clearHeaders
()
62
{
63
parser
.
clearHeaders
();
64
}
65
66
bool
QHttpNetworkHeaderPrivate::operator==
(
const
QHttpNetworkHeaderPrivate
&
other
)
const
67
{
68
return
(
url
==
other
.url);
69
}
70
71
72
QT_END_NAMESPACE
QByteArrayView
Definition
qbytearrayview.h:77
QByteArray
\inmodule QtCore
Definition
qbytearray.h:57
QByteArray::toULongLong
qulonglong toULongLong(bool *ok=nullptr, int base=10) const
Returns the byte array converted to an {unsigned long long} using base base, which is ten by default.
Definition
qbytearray.cpp:3828
QByteArray::number
static QByteArray number(int, int base=10)
Returns a byte-array representing the whole number n as text.
Definition
qbytearray.cpp:4326
QHttpHeaderParser::headers
const QHttpHeaders & headers() const
Definition
qhttpheaderparser.cpp:131
QHttpHeaderParser::headerFieldValues
QList< QByteArray > headerFieldValues(QByteArrayView name) const
Definition
qhttpheaderparser.cpp:150
QHttpHeaderParser::clearHeaders
void clearHeaders()
Definition
qhttpheaderparser.cpp:176
QHttpHeaderParser::setHeaderField
void setHeaderField(const QByteArray &name, const QByteArray &data)
Definition
qhttpheaderparser.cpp:160
QHttpHeaderParser::firstHeaderField
QByteArray firstHeaderField(QByteArrayView name, const QByteArray &defaultValue=QByteArray()) const
Definition
qhttpheaderparser.cpp:136
QHttpHeaderParser::prependHeaderField
void prependHeaderField(const QByteArray &name, const QByteArray &data)
Definition
qhttpheaderparser.cpp:166
QHttpHeaders
Definition
qhttpheaders.h:19
QHttpNetworkHeaderPrivate
Definition
qhttpnetworkheader_p.h:50
QHttpNetworkHeaderPrivate::headers
QHttpHeaders headers() const
Definition
qhttpnetworkheader.cpp:56
QHttpNetworkHeaderPrivate::parser
QHttpHeaderParser parser
Definition
qhttpnetworkheader_p.h:53
QHttpNetworkHeaderPrivate::clearHeaders
void clearHeaders()
Definition
qhttpnetworkheader.cpp:61
QHttpNetworkHeaderPrivate::contentLength
qint64 contentLength() const
Definition
qhttpnetworkheader.cpp:15
QHttpNetworkHeaderPrivate::headerFieldValues
QList< QByteArray > headerFieldValues(QByteArrayView name) const
Definition
qhttpnetworkheader.cpp:41
QHttpNetworkHeaderPrivate::QHttpNetworkHeaderPrivate
QHttpNetworkHeaderPrivate(const QUrl &newUrl=QUrl())
Definition
qhttpnetworkheader.cpp:10
QHttpNetworkHeaderPrivate::headerField
QByteArray headerField(QByteArrayView name, const QByteArray &defaultValue=QByteArray()) const
Definition
qhttpnetworkheader.cpp:32
QHttpNetworkHeaderPrivate::operator==
bool operator==(const QHttpNetworkHeaderPrivate &other) const
Definition
qhttpnetworkheader.cpp:66
QHttpNetworkHeaderPrivate::setHeaderField
void setHeaderField(const QByteArray &name, const QByteArray &data)
Definition
qhttpnetworkheader.cpp:46
QHttpNetworkHeaderPrivate::setContentLength
void setContentLength(qint64 length)
Definition
qhttpnetworkheader.cpp:27
QHttpNetworkHeaderPrivate::prependHeaderField
void prependHeaderField(const QByteArray &name, const QByteArray &data)
Definition
qhttpnetworkheader.cpp:51
QHttpNetworkHeaderPrivate::url
QUrl url
Definition
qhttpnetworkheader_p.h:52
QUrl
\inmodule QtCore
Definition
qurl.h:94
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qstandardpaths_haiku.cpp:21
QT_END_NAMESPACE
Definition
qsharedpointer.cpp:1590
value
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
Definition
qeglstreamconvenience_p.h:46
qhttpnetworkheader_p.h
length
GLenum GLuint GLenum GLsizei length
Definition
qopengles2ext.h:151
data
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
Definition
qopengles2ext.h:206
name
GLuint name
Definition
qopengles2ext.h:156
qint64
long long qint64
Definition
qtypes.h:60
url
QUrl url("example.com")
[constructor-url-reference]
Definition
src_corelib_io_qurl.cpp:19
ok
bool ok
[2]
Definition
src_corelib_text_qbytearrayview.cpp:17
other
QSharedPointer< T > other(t)
[5]
qtbase
src
network
access
qhttpnetworkheader.cpp
Generated by
1.10.0