QNetworkReply Class
Die Klasse QNetworkReply enthält die Daten und Kopfzeilen für eine mit QNetworkAccessManager gesendete Anfrage. Mehr...
Kopfzeile: | #include <QNetworkReply> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
Vererbt: | QIODevice |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QNetworkReply ist Teil der Network Programming API.
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Typen
enum | NetworkError { NoError, ConnectionRefusedError, RemoteHostClosedError, HostNotFoundError, TimeoutError, …, UnknownServerError } |
RawHeaderPair |
Öffentliche Funktionen
virtual | ~QNetworkReply() |
QVariant | attribute(QNetworkRequest::Attribute code) const |
QNetworkReply::NetworkError | error() const |
bool | hasRawHeader(QAnyStringView headerName) const |
QVariant | header(QNetworkRequest::KnownHeaders header) const |
(since 6.8) QHttpHeaders | headers() const |
void | ignoreSslErrors(const QList<QSslError> &errors) |
bool | isFinished() const |
bool | isRunning() const |
QNetworkAccessManager * | manager() const |
QNetworkAccessManager::Operation | operation() const |
QByteArray | rawHeader(QAnyStringView headerName) const |
QList<QByteArray> | rawHeaderList() const |
const QList<QNetworkReply::RawHeaderPair> & | rawHeaderPairs() const |
qint64 | readBufferSize() const |
QNetworkRequest | request() const |
virtual void | setReadBufferSize(qint64 size) |
void | setSslConfiguration(const QSslConfiguration &config) |
QSslConfiguration | sslConfiguration() const |
QUrl | url() const |
Reimplementierte öffentliche Funktionen
virtual void | close() override |
Öffentliche Slots
virtual void | abort() = 0 |
virtual void | ignoreSslErrors() |
Signale
void | downloadProgress(qint64 bytesReceived, qint64 bytesTotal) |
void | encrypted() |
void | errorOccurred(QNetworkReply::NetworkError code) |
void | finished() |
void | metaDataChanged() |
void | preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator) |
void | redirectAllowed() |
void | redirected(const QUrl &url) |
(since 6.3) void | requestSent() |
(since 6.3) void | socketStartedConnecting() |
void | sslErrors(const QList<QSslError> &errors) |
void | uploadProgress(qint64 bytesSent, qint64 bytesTotal) |
Geschützte Funktionen
QNetworkReply(QObject *parent = nullptr) | |
virtual void | ignoreSslErrorsImplementation(const QList<QSslError> &errors) |
void | setAttribute(QNetworkRequest::Attribute code, const QVariant &value) |
void | setError(QNetworkReply::NetworkError errorCode, const QString &errorString) |
void | setFinished(bool finished) |
void | setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value) |
(since 6.8) void | setHeaders(const QHttpHeaders &newHeaders) |
(since 6.8) void | setHeaders(QHttpHeaders &&newHeaders) |
void | setOperation(QNetworkAccessManager::Operation operation) |
void | setRawHeader(const QByteArray &headerName, const QByteArray &value) |
void | setRequest(const QNetworkRequest &request) |
virtual void | setSslConfigurationImplementation(const QSslConfiguration &configuration) |
void | setUrl(const QUrl &url) |
(since 6.8) void | setWellKnownHeader(QHttpHeaders::WellKnownHeader name, QByteArrayView value) |
virtual void | sslConfigurationImplementation(QSslConfiguration &configuration) const |
Detaillierte Beschreibung
Die Klasse QNetworkReply enthält die Daten und Metadaten im Zusammenhang mit einer mit QNetworkAccessManager gestellten Anfrage. Wie QNetworkRequest enthält sie eine URL und Header (sowohl in geparster als auch in roher Form), einige Informationen über den Status der Antwort und den Inhalt der Antwort selbst.
QNetworkReply ist ein Objekt mit sequentiellem Zugriff QIODevice, was bedeutet, dass die Daten, sobald sie aus dem Objekt gelesen wurden, nicht mehr vom Gerät gespeichert werden. Es liegt daher in der Verantwortung der Anwendung, diese Daten aufzubewahren, wenn dies erforderlich ist. Immer wenn weitere Daten aus dem Netz empfangen und verarbeitet werden, wird das Signal readyRead() ausgegeben.
Das Signal downloadProgress() wird ebenfalls ausgegeben, wenn Daten empfangen werden, aber die Anzahl der darin enthaltenen Bytes entspricht möglicherweise nicht den tatsächlich empfangenen Bytes, wenn eine Transformation des Inhalts vorgenommen wurde (z. B. Dekomprimierung und Entfernung des Protokoll-Overheads).
Obwohl QNetworkReply ein QIODevice ist, das mit dem Inhalt der Antwort verbunden ist, sendet es auch das Signal uploadProgress(), das den Fortschritt des Uploads für Operationen mit einem solchen Inhalt anzeigt.
Hinweis: Löschen Sie nicht das Objekt in dem Slot, der mit dem Signal errorOccurred() oder finished() verbunden ist. Verwenden Sie deleteLater().
Siehe auch QNetworkRequest und QNetworkAccessManager.
Dokumentation der Mitgliedstypen
enum QNetworkReply::NetworkError
Gibt alle möglichen Fehlerbedingungen an, die bei der Bearbeitung der Anfrage festgestellt wurden.
Konstante | Wert | Beschreibung |
---|---|---|
QNetworkReply::NoError | 0 | keine Fehlerbedingung. |
Hinweis: Wenn das HTTP-Protokoll einen Redirect zurückgibt, wird kein Fehler gemeldet. Sie können mit dem Attribut QNetworkRequest::RedirectionTargetAttribute überprüfen, ob eine Weiterleitung vorliegt.
Konstante | Wert | Beschreibung |
---|---|---|
QNetworkReply::ConnectionRefusedError | 1 | der entfernte Server hat die Verbindung abgelehnt (der Server nimmt keine Anfragen an) |
QNetworkReply::RemoteHostClosedError | 2 | der entfernte Server hat die Verbindung vorzeitig geschlossen, bevor die gesamte Antwort empfangen und verarbeitet wurde |
QNetworkReply::HostNotFoundError | 3 | der Name des entfernten Hosts wurde nicht gefunden (ungültiger Hostname) |
QNetworkReply::TimeoutError | 4 | die Verbindung zum entfernten Server wurde durch Zeitüberschreitung unterbrochen |
QNetworkReply::OperationCanceledError | 5 | Der Vorgang wurde durch Aufrufe von abort() oder close() abgebrochen, bevor er beendet wurde. |
QNetworkReply::SslHandshakeFailedError | 6 | der SSL/TLS-Handshake ist fehlgeschlagen und der verschlüsselte Kanal konnte nicht aufgebaut werden. Das Signal sslErrors() hätte ausgegeben werden müssen. |
QNetworkReply::TemporaryNetworkFailureError | 7 | die Verbindung wurde aufgrund einer Trennung vom Netz unterbrochen, das System hat jedoch ein Roaming zu einem anderen Zugangspunkt eingeleitet. Die Anfrage sollte erneut gestellt werden und wird bearbeitet, sobald die Verbindung wiederhergestellt ist. |
QNetworkReply::NetworkSessionFailedError | 8 | Die Verbindung wurde unterbrochen, weil die Verbindung zum Netz unterbrochen wurde oder das Netz nicht gestartet werden konnte. |
QNetworkReply::BackgroundRequestNotAllowedError | 9 | Die Hintergrundanforderung ist aufgrund von Plattformrichtlinien derzeit nicht zulässig. |
QNetworkReply::TooManyRedirectsError | 10 | Beim Verfolgen von Weiterleitungen wurde das maximale Limit erreicht. Das Limit ist standardmäßig auf 50 gesetzt oder wie mit QNetworkRequest::setMaxRedirectsAllowed() festgelegt. (Dieser Wert wurde in 5.6 eingeführt.) |
QNetworkReply::InsecureRedirectError | 11 | bei folgenden Umleitungen hat die Netzwerkzugriffs-API eine Umleitung von einem verschlüsselten Protokoll (https) zu einem unverschlüsselten (http) erkannt. (Dieser Wert wurde in Version 5.6 eingeführt.) |
QNetworkReply::ProxyConnectionRefusedError | 101 | die Verbindung zum Proxyserver wurde abgelehnt (der Proxyserver nimmt keine Anfragen an) |
QNetworkReply::ProxyConnectionClosedError | 102 | der Proxyserver hat die Verbindung vorzeitig geschlossen, bevor die gesamte Antwort empfangen und verarbeitet wurde |
QNetworkReply::ProxyNotFoundError | 103 | der Proxy-Hostname wurde nicht gefunden (ungültiger Proxy-Hostname) |
QNetworkReply::ProxyTimeoutError | 104 | die Verbindung zum Proxy wurde unterbrochen oder der Proxy hat nicht rechtzeitig auf die Anfrage geantwortet |
QNetworkReply::ProxyAuthenticationRequiredError | 105 | der Proxy verlangt eine Authentifizierung, um die Anfrage zu erfüllen, hat aber die angebotenen Anmeldeinformationen (falls vorhanden) nicht akzeptiert |
QNetworkReply::ContentAccessDenied | 201 | der Zugriff auf den Remote-Inhalt wurde verweigert (ähnlich dem HTTP-Fehler 403) |
QNetworkReply::ContentOperationNotPermittedError | 202 | die angeforderte Operation für den entfernten Inhalt ist nicht erlaubt |
QNetworkReply::ContentNotFoundError | 203 | der Remote-Inhalt wurde auf dem Server nicht gefunden (ähnlich wie bei HTTP-Fehler 404) |
QNetworkReply::AuthenticationRequiredError | 204 | der entfernte Server erfordert eine Authentifizierung, um den Inhalt bereitzustellen, aber die angegebenen Anmeldedaten wurden nicht akzeptiert (falls vorhanden) |
QNetworkReply::ContentReSendError | 205 | die Anforderung musste erneut gesendet werden, was jedoch fehlgeschlagen ist, weil beispielsweise die Upload-Daten nicht ein zweites Mal gelesen werden konnten. |
QNetworkReply::ContentConflictError | 206 | die Anforderung konnte aufgrund eines Konflikts mit dem aktuellen Zustand der Ressource nicht abgeschlossen werden. |
QNetworkReply::ContentGoneError | 207 | Die angeforderte Ressource ist auf dem Server nicht mehr verfügbar. |
QNetworkReply::InternalServerError | 401 | Der Server ist auf eine unerwartete Bedingung gestoßen, die ihn daran hindert, die Anfrage zu erfüllen. |
QNetworkReply::OperationNotImplementedError | 402 | Der Server unterstützt die zur Erfüllung der Anfrage erforderlichen Funktionen nicht. |
QNetworkReply::ServiceUnavailableError | 403 | Der Server kann die Anfrage zu diesem Zeitpunkt nicht bearbeiten. |
QNetworkReply::ProtocolUnknownError | 301 | Die Netzwerkzugangs-API kann die Anforderung nicht erfüllen, da das Protokoll nicht bekannt ist. |
QNetworkReply::ProtocolInvalidOperationError | 302 | der angeforderte Vorgang für dieses Protokoll ungültig ist |
QNetworkReply::UnknownNetworkError | 99 | ein unbekannter netzwerkbezogener Fehler festgestellt wurde |
QNetworkReply::UnknownProxyError | 199 | ein unbekannter proxybezogener Fehler wurde festgestellt |
QNetworkReply::UnknownContentError | 299 | Es wurde ein unbekannter Fehler in Bezug auf den Remote-Inhalt festgestellt. |
QNetworkReply::ProtocolFailure | 399 | Es wurde eine Störung im Protokoll festgestellt (Parsing-Fehler, ungültige oder unerwartete Antworten usw.) |
QNetworkReply::UnknownServerError | 499 | Es wurde ein unbekannter Fehler in Bezug auf die Serverantwort festgestellt. |
Siehe auch error() und errorOccurred().
QNetworkReply::RawHeaderPair
RawHeaderPair ist ein QPair<QByteArray, QByteArray>, wobei der erste QByteArray der Name der Kopfzeile und der zweite die Kopfzeile ist.
Dokumentation der Mitgliedsfunktionen
[explicit protected]
QNetworkReply::QNetworkReply(QObject *parent = nullptr)
Erzeugt ein QNetworkReply-Objekt mit dem übergeordneten parent.
Sie können QNetworkReply-Objekte nicht direkt instanziieren. Verwenden Sie dazu QNetworkAccessManager Funktionen.
[virtual noexcept]
QNetworkReply::~QNetworkReply()
Verwirft diese Antwort und gibt alle mit ihr verbundenen Ressourcen frei. Falls noch Netzwerkverbindungen offen sind, werden diese geschlossen.
Siehe auch abort() und close().
[pure virtual slot]
void QNetworkReply::abort()
Bricht den Vorgang sofort ab und trennt alle noch offenen Netzwerkverbindungen. Noch laufende Uploads werden ebenfalls abgebrochen.
Es wird auch das Signal finished() ausgegeben.
Siehe auch close() und finished().
QVariant QNetworkReply::attribute(QNetworkRequest::Attribute code) const
Gibt das Attribut zurück, das mit dem Code code verbunden ist. Wenn das Attribut nicht gesetzt wurde, wird ein ungültiger QVariant (Typ QMetaType::UnknownType) zurückgegeben.
Sie können davon ausgehen, dass die in QNetworkRequest::Attribute aufgeführten Standardwerte auf die von dieser Funktion zurückgegebenen Werte angewendet werden.
Siehe auch setAttribute() und QNetworkRequest::Attribute.
[override virtual]
void QNetworkReply::close()
Reimplements: QIODevice::close().
Schließt dieses Gerät zum Lesen. Ungelesene Daten werden verworfen, aber die Netzwerkressourcen werden nicht verworfen, bis sie beendet sind. Insbesondere, wenn ein Upload im Gange ist, wird er fortgesetzt, bis er beendet ist.
Das Signal finished() wird ausgegeben, wenn alle Operationen beendet und die Netzwerkressourcen freigegeben sind.
Siehe auch abort() und finished().
[signal]
void QNetworkReply::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
Dieses Signal wird ausgegeben, um den Fortschritt des Download-Teils dieser Netzwerkanforderung anzuzeigen, falls es einen solchen gibt. Wenn mit dieser Anforderung kein Download verbunden ist, wird dieses Signal einmal mit dem Wert 0 sowohl für bytesReceived als auch für bytesTotal ausgegeben.
Der Parameter bytesReceived gibt die Anzahl der empfangenen Bytes an, während bytesTotal die Gesamtzahl der zum Herunterladen erwarteten Bytes angibt. Wenn die Anzahl der herunterzuladenden Bytes nicht bekannt ist, ist bytesTotal gleich -1.
Der Download ist beendet, wenn bytesReceived gleich bytesTotal ist. Zu diesem Zeitpunkt ist bytesTotal nicht mehr -1.
Beachten Sie, dass die Werte von bytesReceived und bytesTotal von size(), der Gesamtzahl der über read() oder readAll() ermittelten Bytes oder dem Wert des Headers (ContentLengthHeader) abweichen können. Der Grund dafür ist, dass es einen Protokoll-Overhead geben kann oder die Daten während des Downloads komprimiert werden können.
Siehe auch uploadProgress() und bytesAvailable().
[signal]
void QNetworkReply::encrypted()
Dieses Signal wird ausgesendet, wenn eine SSL/TLS-Sitzung den ersten Handshake erfolgreich abgeschlossen hat. Zu diesem Zeitpunkt sind noch keine Nutzdaten übertragen worden. Das Signal kann verwendet werden, um zusätzliche Überprüfungen der Zertifikatskette durchzuführen, z. B. um Benutzer zu benachrichtigen, wenn sich das Zertifikat für eine Website geändert hat. Wenn die Antwort nicht den erwarteten Kriterien entspricht, sollte sie durch den Aufruf von QNetworkReply::abort() über einen mit diesem Signal verbundenen Slot abgebrochen werden. Die verwendete SSL-Konfiguration kann mit der Methode QNetworkReply::sslConfiguration() eingesehen werden.
Intern kann QNetworkAccessManager mehrere Verbindungen zu einem Server öffnen, um die parallele Verarbeitung von Anfragen zu ermöglichen. Diese Verbindungen können wiederverwendet werden, was bedeutet, dass das encrypted()-Signal nicht ausgegeben werden würde. Dies bedeutet, dass Sie dieses Signal garantiert nur für die erste Verbindung zu einer Site während der Lebensdauer von QNetworkAccessManager erhalten.
Siehe auch QSslSocket::encrypted() und QNetworkAccessManager::encrypted().
QNetworkReply::NetworkError QNetworkReply::error() const
Gibt den Fehler zurück, der bei der Verarbeitung dieser Anfrage gefunden wurde. Wenn kein Fehler gefunden wurde, wird NoError zurückgegeben.
Siehe auch setError().
[signal]
void QNetworkReply::errorOccurred(QNetworkReply::NetworkError code)
Dieses Signal wird ausgegeben, wenn die Antwort einen Fehler bei der Verarbeitung feststellt. Wahrscheinlich wird das Signal finished() folgen, das anzeigt, dass die Verbindung beendet ist.
Der Parameter code enthält den Code des Fehlers, der entdeckt wurde. Rufen Sie errorString() auf, um eine textuelle Darstellung der Fehlerbedingung zu erhalten.
Hinweis: Löschen Sie nicht das Objekt in dem Slot, der mit diesem Signal verbunden ist. Verwenden Sie deleteLater().
Siehe auch error() und errorString().
[signal]
void QNetworkReply::finished()
Dieses Signal wird ausgesendet, wenn die Verarbeitung der Antwort abgeschlossen ist. Nachdem dieses Signal ausgegeben wurde, gibt es keine weiteren Aktualisierungen der Daten oder Metadaten der Antwort.
Sofern nicht close() oder abort() aufgerufen wurden, ist die Antwort noch zum Lesen geöffnet, so dass die Daten durch Aufrufe von read() oder readAll() abgerufen werden können. Insbesondere, wenn keine Aufrufe von read() als Ergebnis von readyRead() gemacht wurden, wird ein Aufruf von readAll() den vollständigen Inhalt in einem QByteArray abrufen.
Dieses Signal wird in Verbindung mit QNetworkAccessManager::finished() ausgegeben, wobei der Antwortparameter dieses Signals dieses Objekt ist.
Hinweis: Löschen Sie nicht das Objekt in dem mit diesem Signal verbundenen Slot. Verwenden Sie deleteLater().
Sie können auch isFinished() verwenden, um zu prüfen, ob ein QNetworkReply beendet wurde, bevor Sie das Signal finished() erhalten.
Siehe auch setFinished(), QNetworkAccessManager::finished(), und isFinished().
bool QNetworkReply::hasRawHeader(QAnyStringView headerName) const
Gibt true
zurück, wenn der rohe Header des Namens headerName vom entfernten Server gesendet wurde.
Hinweis: In Qt-Versionen vor 6.7 nahm diese Funktion nur QByteArray an.
Siehe auch rawHeader().
QVariant QNetworkReply::header(QNetworkRequest::KnownHeaders header) const
Gibt den Wert des bekannten Headers header zurück, wenn dieser Header vom entfernten Server gesendet wurde. Wurde der Header nicht gesendet, wird ein ungültiger QVariant zurückgegeben.
Siehe auch rawHeader(), setHeader(), und QNetworkRequest::header().
[since 6.8]
QHttpHeaders QNetworkReply::headers() const
Gibt Header zurück, die vom entfernten Server gesendet wurden.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch setHeaders(), QNetworkRequest::setAttribute(), und QNetworkRequest::Attribute.
[virtual slot]
void QNetworkReply::ignoreSslErrors()
Wenn diese Funktion aufgerufen wird, werden SSL-Fehler im Zusammenhang mit der Netzwerkverbindung ignoriert, einschließlich Zertifikatsvalidierungsfehler.
Warnung: Lassen Sie den Benutzer immer die vom Signal sslErrors() gemeldeten Fehler überprüfen und rufen Sie diese Methode nur auf, wenn der Benutzer bestätigt, dass der Vorgang in Ordnung ist. Wenn unerwartete Fehler auftreten, sollte die Antwort abgebrochen werden. Der Aufruf dieser Methode, ohne die tatsächlichen Fehler zu prüfen, stellt höchstwahrscheinlich ein Sicherheitsrisiko für Ihre Anwendung dar. Verwenden Sie sie mit großer Vorsicht!
Diese Funktion kann von dem Slot aus aufgerufen werden, der mit dem Signal sslErrors() verbunden ist, das anzeigt, welche Fehler gefunden wurden.
Hinweis: Wenn HTTP Strict Transport Security für QNetworkAccessManager aktiviert ist, hat diese Funktion keine Wirkung.
Siehe auch sslConfiguration(), sslErrors(), und QSslSocket::ignoreSslErrors().
void QNetworkReply::ignoreSslErrors(const QList<QSslError> &errors)
Dies ist eine überladene Funktion.
Wenn diese Funktion aufgerufen wird, werden die in errors angegebenen SSL-Fehler ignoriert.
Hinweis: Da die meisten SSL-Fehler mit einem Zertifikat verbunden sind, müssen Sie für die meisten von ihnen das erwartete Zertifikat festlegen, auf das sich der SSL-Fehler bezieht. Wenn Sie zum Beispiel eine Anfrage an einen Server stellen wollen, der ein selbstsigniertes Zertifikat verwendet, sollten Sie den folgenden Ausschnitt betrachten:
QList<QSslCertificate> cert = QSslCertificate::fromPath("server-certificate.pem"_L1); QSslError error(QSslError::SelfSignedCertificate, cert.at(0)); QList<QSslError> expectedSslErrors; expectedSslErrors.append(error); QNetworkReply *reply = manager.get(QNetworkRequest(QUrl("https://server.tld/index.html"))); reply->ignoreSslErrors(expectedSslErrors); // here connect signals etc.
Bei mehreren Aufrufen dieser Funktion wird die Liste der Fehler, die bei früheren Aufrufen übergeben wurden, ersetzt. Sie können die Liste der Fehler, die Sie ignorieren möchten, löschen, indem Sie diese Funktion mit einer leeren Liste aufrufen.
Hinweis: Wenn HTTP Strict Transport Security für QNetworkAccessManager aktiviert ist, hat diese Funktion keine Wirkung.
Siehe auch sslConfiguration(), sslErrors(), QSslSocket::ignoreSslErrors(), und QNetworkAccessManager::setStrictTransportSecurityEnabled().
[virtual protected]
void QNetworkReply::ignoreSslErrorsImplementation(const QList<QSslError> &errors)
Diese virtuelle Methode wird bereitgestellt, um das Verhalten von ignoreSslErrors() zu überschreiben. ignoreSslErrors() ist ein öffentlicher Wrapper für diese Methode. errors enthält die Fehler, die der Benutzer ignoriert haben möchte.
Siehe auch ignoreSslErrors().
bool QNetworkReply::isFinished() const
Gibt true
zurück, wenn die Antwort beendet ist oder abgebrochen wurde.
Siehe auch isRunning().
bool QNetworkReply::isRunning() const
Gibt true
zurück, wenn die Anfrage noch in Bearbeitung ist und die Antwort noch nicht abgeschlossen ist oder abgebrochen wurde.
Siehe auch isFinished().
QNetworkAccessManager *QNetworkReply::manager() const
Gibt das QNetworkAccessManager zurück, das zur Erstellung dieses QNetworkReply Objekts verwendet wurde. Ursprünglich ist es auch das übergeordnete Objekt.
[signal]
void QNetworkReply::metaDataChanged()
Dieses Signal wird immer dann ausgegeben, wenn sich die Metadaten in dieser Antwort ändern. Metadaten sind alle Informationen, die nicht der Inhalt (Daten) selbst sind, einschließlich der Netzwerk-Header. In den meisten Fällen sind die Metadaten bereits vollständig bekannt, wenn das erste Datenbyte empfangen wird. Es ist jedoch möglich, Aktualisierungen von Kopfzeilen oder anderen Metadaten während der Verarbeitung der Daten zu erhalten.
Siehe auch header(), rawHeaderList(), rawHeader(), und hasRawHeader().
QNetworkAccessManager::Operation QNetworkReply::operation() const
Gibt den Vorgang zurück, der für diese Antwort gebucht wurde.
Siehe auch setOperation().
[signal]
void QNetworkReply::preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator)
Dieses Signal wird ausgegeben, wenn beim SSL/TLS-Handshake eine PSK-Ciphersuite ausgehandelt wird und somit eine PSK-Authentifizierung erforderlich ist.
Bei der Verwendung von PSK muss der Client dem Server eine gültige Identität und einen gültigen Pre-Shared Key senden, damit der SSL-Handshake fortgesetzt werden kann. Anwendungen können diese Informationen in einem mit diesem Signal verbundenen Slot bereitstellen, indem sie das übergebene authenticator Objekt entsprechend ihren Bedürfnissen ausfüllen.
Hinweis: Das Ignorieren dieses Signals oder die Nichtbereitstellung der erforderlichen Anmeldeinformationen führt zum Scheitern des Handshakes und damit zum Abbruch der Verbindung.
Hinweis: Das Objekt authenticator ist Eigentum der Antwort und darf von der Anwendung nicht gelöscht werden.
Siehe auch QSslPreSharedKeyAuthenticator.
QByteArray QNetworkReply::rawHeader(QAnyStringView headerName) const
Gibt den Rohinhalt des Headers headerName zurück, wie er vom entfernten Server gesendet wurde. Wenn es keinen solchen Header gibt, wird ein leeres Byte-Array zurückgegeben, das von einem leeren Header nicht zu unterscheiden ist. Verwenden Sie hasRawHeader(), um zu überprüfen, ob der Server ein solches Header-Feld gesendet hat.
Hinweis: In Qt-Versionen vor 6.7 nahm diese Funktion nur QByteArray an.
Siehe auch setRawHeader(), hasRawHeader(), und header().
QList<QByteArray> QNetworkReply::rawHeaderList() const
Gibt eine Liste der Kopfzeilenfelder zurück, die vom entfernten Server gesendet wurden, und zwar in der Reihenfolge, in der sie gesendet wurden. Doppelte Header werden zusammengeführt und ersetzen das letzte Duplikat.
const QList<QNetworkReply::RawHeaderPair> &QNetworkReply::rawHeaderPairs() const
Gibt eine Liste von rohen Kopfzeilenpaaren zurück.
qint64 QNetworkReply::readBufferSize() const
Gibt die Größe des Lesepuffers in Bytes zurück.
Siehe auch setReadBufferSize().
[signal]
void QNetworkReply::redirectAllowed()
Wenn der Client-Code, der das Signal redirected() verarbeitet, die neue URL überprüft hat, sendet er dieses Signal, um die Weiterleitung zu ermöglichen. Dieses Protokoll gilt für Netzwerkanforderungen, deren Umleitungsrichtlinie auf QNetworkRequest::UserVerifiedRedirectPolicy
Siehe auch QNetworkRequest::UserVerifiedRedirectPolicy, QNetworkAccessManager::setRedirectPolicy(), und QNetworkRequest::RedirectPolicyAttribute.
[signal]
void QNetworkReply::redirected(const QUrl &url)
Dieses Signal wird ausgegeben, wenn QNetworkRequest::ManualRedirectPolicy in der Anfrage nicht gesetzt wurde und der Server mit einem 3xx-Status (insbesondere 301, 302, 303, 305, 307 oder 308 Statuscode) mit einer gültigen URL im Location-Header geantwortet hat, was auf eine HTTP-Umleitung hinweist. Der Parameter url enthält die neue Umleitungsurl, wie sie vom Server im Location-Header zurückgegeben wurde.
Siehe auch QNetworkRequest::RedirectPolicy.
QNetworkRequest QNetworkReply::request() const
Gibt die Anfrage zurück, die für diese Antwort gestellt wurde. Beachten Sie insbesondere, dass die URL für die Anfrage eine andere sein kann als die der Antwort.
Siehe auch QNetworkRequest::url(), url(), und setRequest().
[signal, since 6.3]
void QNetworkReply::requestSent()
Dieses Signal wird 1 oder mehrere Male ausgegeben, wenn die Anfrage gesendet wurde. Nützlich für benutzerdefinierte Fortschritts- oder Timeout-Behandlung.
Diese Funktion wurde in Qt 6.3 eingeführt.
Siehe auch metaDataChanged() und socketStartedConnecting().
[protected]
void QNetworkReply::setAttribute(QNetworkRequest::Attribute code, const QVariant &value)
Setzt das Attribut code auf den Wert value. Wenn code zuvor gesetzt war, wird es überschrieben. Wenn value ein ungültiger QVariant ist, wird das Attribut zurückgesetzt.
Siehe auch attribute() und QNetworkRequest::setAttribute().
[protected]
void QNetworkReply::setError(QNetworkReply::NetworkError errorCode, const QString &errorString)
Setzt die Fehlerbedingung auf errorCode. Die für den Menschen lesbare Meldung wird mit errorString gesetzt.
Der Aufruf von setError() gibt nicht das Signal errorOccurred(QNetworkReply::NetworkError) aus.
Siehe auch error() und errorString().
[protected]
void QNetworkReply::setFinished(bool finished)
Setzt die Antwort als finished.
Nach dieser Einstellung dürfen sich die Antwortdaten nicht mehr ändern.
Siehe auch finished() und isFinished().
[protected]
void QNetworkReply::setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value)
Setzt den bekannten Header header auf den Wert value. Die entsprechende Rohform der Kopfzeile wird ebenfalls gesetzt.
Siehe auch header(), setRawHeader(), und QNetworkRequest::setHeader().
[protected, since 6.8]
void QNetworkReply::setHeaders(const QHttpHeaders &newHeaders)
Legt newHeaders als Kopfzeilen in dieser Netzantwort fest, wobei alle zuvor festgelegten Kopfzeilen außer Kraft gesetzt werden.
Wenn einige Kopfzeilen den bekannten Kopfzeilen entsprechen, werden sie geparst und die entsprechende geparste Form wird ebenfalls gesetzt.
Diese Funktion wurde in Qt 6.8 eingeführt.
Siehe auch headers() und QNetworkRequest::KnownHeaders.
[protected, since 6.8]
void QNetworkReply::setHeaders(QHttpHeaders &&newHeaders)
Dies ist eine überladene Funktion.
Diese Funktion wurde in Qt 6.8 eingeführt.
[protected]
void QNetworkReply::setOperation(QNetworkAccessManager::Operation operation)
Setzt die zugehörige Operation für dieses Objekt auf operation. Dieser Wert wird von operation() zurückgegeben.
Hinweis: Die Operation sollte bei der Erstellung dieses Objekts festgelegt und nicht mehr geändert werden.
Siehe auch operation() und setRequest().
[protected]
void QNetworkReply::setRawHeader(const QByteArray &headerName, const QByteArray &value)
Setzt die rohe Kopfzeile headerName auf den Wert value. Wenn headerName zuvor gesetzt war, wird er überschrieben. Mehrere HTTP-Header mit demselben Namen sind funktionell äquivalent zu einem einzigen Header, wobei die Werte durch Kommas getrennt aneinandergereiht werden.
Wenn headerName mit einem bekannten Header übereinstimmt, wird der Wert value geparst und die entsprechende geparste Form wird ebenfalls gesetzt.
Siehe auch rawHeader(), header(), setHeader(), und QNetworkRequest::setRawHeader().
[virtual]
void QNetworkReply::setReadBufferSize(qint64 size)
Setzt die Größe des Lesepuffers auf size Bytes. Der Lesepuffer ist der Puffer, in dem Daten gespeichert werden, die aus dem Netz heruntergeladen werden, bevor sie mit QIODevice::read() gelesen werden. Wird die Puffergröße auf 0 gesetzt, ist der Puffer unbegrenzt groß.
QNetworkReply Die Funktion bytesAvailable() versucht, das Lesen aus dem Netz zu beenden, sobald dieser Puffer voll ist (d. h., () gibt size oder mehr zurück), so dass der Download ebenfalls gedrosselt wird. Wenn die Größe des Puffers nicht begrenzt ist, wird QNetworkReply versuchen, so schnell wie möglich aus dem Netz herunterzuladen.
Im Gegensatz zu QAbstractSocket::setReadBufferSize() kann QNetworkReply keine Genauigkeit bei der Größe des Lesepuffers garantieren. Das heißt, bytesAvailable() kann mehr zurückgeben als size.
Siehe auch readBufferSize().
[protected]
void QNetworkReply::setRequest(const QNetworkRequest &request)
Setzt die zugehörige Anfrage für dieses Objekt auf request. Dieser Wert wird von request() zurückgegeben.
Hinweis: Die Anforderung sollte bei der Erstellung dieses Objekts festgelegt und nicht mehr geändert werden.
Siehe auch request() und setOperation().
void QNetworkReply::setSslConfiguration(const QSslConfiguration &config)
Setzt die SSL-Konfiguration für die mit dieser Anfrage verbundene Netzwerkverbindung, wenn möglich, auf die von config.
Siehe auch sslConfiguration().
[virtual protected]
void QNetworkReply::setSslConfigurationImplementation(const QSslConfiguration &configuration)
Diese virtuelle Methode wird bereitgestellt, um das Verhalten von setSslConfiguration() zu überschreiben. setSslConfiguration() ist ein öffentlicher Wrapper für diese Methode. Wenn Sie diese Methode außer Kraft setzen, verwenden Sie configuration, um die SSL-Konfiguration zu setzen.
Siehe auch sslConfigurationImplementation() und setSslConfiguration().
[protected]
void QNetworkReply::setUrl(const QUrl &url)
Legt fest, dass die zu verarbeitende URL url sein soll. Normalerweise stimmt die URL mit der der gesendeten Anfrage überein, aber aus verschiedenen Gründen kann sie auch anders lauten (z. B. wenn ein Dateipfad absolut oder kanonisch gemacht wird).
Siehe auch url(), request(), und QNetworkRequest::url().
[protected, since 6.8]
void QNetworkReply::setWellKnownHeader(QHttpHeaders::WellKnownHeader name, QByteArrayView value)
Setzt die Kopfzeile name auf den Wert value. Wenn name vorher gesetzt war, wird es überschrieben.
Diese Funktion wurde in Qt 6.8 eingeführt.
[signal, since 6.3]
void QNetworkReply::socketStartedConnecting()
Dieses Signal wird 0 oder mehr Mal ausgegeben, wenn der Socket eine Verbindung herstellt, bevor die Anfrage gesendet wird. Nützlich für benutzerdefinierte Fortschritts- oder Timeout-Behandlung.
Diese Funktion wurde in Qt 6.3 eingeführt.
Siehe auch metaDataChanged() und requestSent().
QSslConfiguration QNetworkReply::sslConfiguration() const
Gibt die SSL-Konfiguration und den SSL-Status zurück, die mit dieser Antwort verbunden sind, wenn SSL verwendet wurde. Sie enthält das Zertifikat des entfernten Servers, seine Zertifikatskette, die zur Zertifizierungsstelle führt, sowie die verwendeten Verschlüsselungscodes.
Das Zertifikat der Gegenstelle und ihre Zertifikatskette sind zum Zeitpunkt der Ausgabe von sslErrors() bekannt, falls sie ausgegeben wird.
Siehe auch setSslConfiguration().
[virtual protected]
void QNetworkReply::sslConfigurationImplementation(QSslConfiguration &configuration) const
Diese virtuelle Methode wird bereitgestellt, um das Verhalten von sslConfiguration() zu überschreiben. sslConfiguration() ist ein öffentlicher Wrapper für diese Methode. Die Konfiguration wird in configuration zurückgegeben.
Siehe auch setSslConfigurationImplementation() und sslConfiguration().
[signal]
void QNetworkReply::sslErrors(const QList<QSslError> &errors)
Dieses Signal wird ausgegeben, wenn bei der Einrichtung der SSL/TLS-Sitzung Fehler aufgetreten sind, einschließlich Zertifikatsüberprüfungsfehler. Der Parameter errors enthält die Liste der Fehler.
Um anzuzeigen, dass die Fehler nicht schwerwiegend sind und die Verbindung fortgesetzt werden sollte, sollte die Funktion ignoreSslErrors() von dem mit diesem Signal verbundenen Slot aufgerufen werden. Wird sie nicht aufgerufen, wird die SSL-Sitzung abgebaut, bevor irgendwelche Daten ausgetauscht werden (einschließlich der URL).
Dieses Signal kann verwendet werden, um dem Benutzer eine Fehlermeldung anzuzeigen, die darauf hinweist, dass die Sicherheit möglicherweise gefährdet ist, und um die SSL-Einstellungen anzuzeigen (siehe sslConfiguration(), um sie zu erhalten). Entscheidet sich der Benutzer nach der Analyse des Gegenstellen-Zertifikats zum Weitermachen, sollte der Slot ignoreSslErrors() aufrufen.
Siehe auch QSslSocket::sslErrors(), QNetworkAccessManager::sslErrors(), sslConfiguration(), und ignoreSslErrors().
[signal]
void QNetworkReply::uploadProgress(qint64 bytesSent, qint64 bytesTotal)
Dieses Signal wird ausgegeben, um den Fortschritt des Upload-Teils dieser Netzwerkanfrage anzuzeigen, falls es einen solchen gibt. Wenn mit dieser Anforderung kein Upload verbunden ist, wird dieses Signal nicht ausgegeben.
Der Parameter bytesSent gibt die Anzahl der hochgeladenen Bytes an, während bytesTotal die Gesamtzahl der hochzuladenden Bytes angibt. Wenn die Anzahl der hochzuladenden Bytes nicht ermittelt werden konnte, ist bytesTotal gleich -1.
Der Upload ist beendet, wenn bytesSent gleich bytesTotal ist. Zu diesem Zeitpunkt wird bytesTotal nicht -1 sein.
Siehe auch downloadProgress().
QUrl QNetworkReply::url() const
Gibt die URL des herunter- oder hochgeladenen Inhalts zurück. Beachten Sie, dass sich die URL von der der ursprünglichen Anfrage unterscheiden kann. Wenn Umleitungen in der Anfrage aktiviert wurden, gibt diese Funktion die aktuelle URL zurück, auf die die Netzwerk-API zugreift, d. h. die URL der Ressource, zu der die Anfrage umgeleitet wurde.
Siehe auch request(), setUrl(), QNetworkRequest::url(), und redirected().
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.