QNetworkReply Class
QNetworkReply クラスは、QNetworkAccessManager で送信されるリクエストのデータとヘッダーを格納します。詳細...
| ヘッダー: | #include <QNetworkReply> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
| 継承元: | QIODevice |
- 継承されたメンバーを含むすべてのメンバーの一覧
- QNetworkReply は、ネットワークプログラミング API の一部です。
注:このクラスのすべての関数は再入可能です。
パブリック型
| enum | NetworkError { NoError, ConnectionRefusedError, RemoteHostClosedError, HostNotFoundError, TimeoutError, …, UnknownServerError } |
| RawHeaderPair |
パブリック関数
| 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 |
再実装されたパブリック関数
| virtual void | close() override |
| virtual bool | isSequential() const override |
パブリック・スロット
| virtual void | abort() = 0 |
| virtual void | ignoreSslErrors() |
シグナル
| 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) |
protected関数
| 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 |
再実装されたプロテクト関数
| virtual qint64 | writeData(const char *data, qint64 len) override |
詳細な説明
QNetworkReply クラスは、QNetworkAccessManager で送信されたリクエストに関連するデータおよびメタデータを含みます。QNetworkRequest と同様に、URL やヘッダー(解析済み形式と生データの両方の形式)、応答の状態に関する情報、および応答そのものの内容を含みます。
QNetworkReplyは順次アクセス型のQIODevice であり、これは、オブジェクトからデータが読み出されると、そのデータはデバイス側で保持されなくなることを意味します。したがって、必要に応じてこのデータを保持するのはアプリケーション側の責任となります。ネットワークからさらにデータを受信して処理されるたびに、readyRead()シグナルが発火します。
downloadProgress() シグナルはデータを受信した際にも発火しますが、内容に対して何らかの変換(例えば、解凍やプロトコルオーバーヘッドの除去など)が行われた場合、その中に含まれるバイト数は実際に受信されたバイト数を正確に表さない可能性があります。
QNetworkReply は、応答の内容に接続されたQIODevice ですが、そのような内容を含む操作のアップロードの進行状況を示すuploadProgress() シグナルも発火します。
注: errorOccurred() またはfinished() シグナルに接続されたスロット内で、オブジェクトを削除しないでください 。deleteLater() を使用してください。
「 QNetworkRequest 」および「QNetworkAccessManager 」も参照してください 。
メンバ型のドキュメント
enum QNetworkReply::NetworkError
リクエストの処理中に検出された、考えられるすべてのエラー状態を示します。
| 定数 | 値 | 説明 |
|---|---|---|
QNetworkReply::NoError | 0 | エラー状態なし。 注: HTTP プロトコルがリダイレクトを返した場合、 エラーは報告されません。リダイレクトの有無は、QNetworkRequest::RedirectionTargetAttribute 属性で確認できます。 |
QNetworkReply::ConnectionRefusedError | 1 | リモートサーバーが接続を拒否した(サーバーがリクエストを受け付けていない) |
QNetworkReply::RemoteHostClosedError | 2 | 応答がすべて受信・処理される前に、リモートサーバーが接続を早期に切断した |
QNetworkReply::HostNotFoundError | 3 | リモートホスト名が見つかりませんでした(無効なホスト名) |
QNetworkReply::TimeoutError | 4 | リモートサーバーへの接続がタイムアウトした |
QNetworkReply::OperationCanceledError | 5 | 操作が完了する前に、abort() またはclose() の呼び出しによってキャンセルされました。 |
QNetworkReply::SslHandshakeFailedError | 6 | SSL/TLS ハンドシェイクに失敗し、暗号化された通信チャネルを確立できませんでした。sslErrors() シグナルが発行されるべきでした。 |
QNetworkReply::TemporaryNetworkFailureError | 7 | ネットワークからの切断により接続が切断されましたが、システムは別のアクセスポイントへのローミングを開始しました。リクエストは再送信する必要があり、接続が再確立され次第処理されます。 |
QNetworkReply::NetworkSessionFailedError | 8 | ネットワークからの切断またはネットワークの起動失敗により、接続が切断されました。 |
QNetworkReply::BackgroundRequestNotAllowedError | 9 | プラットフォームのポリシーにより、現在バックグラウンドリクエストは許可されていません。 |
QNetworkReply::TooManyRedirectsError | 10 | リダイレクトを追跡中に、上限に達しました。この上限は、デフォルトで 50 に設定されているか、QNetworkRequest::setMaxRedirectsAllowed() によって設定された値になります。(この値は 5.6 で導入されました。) |
QNetworkReply::InsecureRedirectError | 11 | リダイレクトを追跡中に、ネットワークアクセス API が、暗号化プロトコル (https) から非暗号化プロトコル (http) へのリダイレクトを検出した。(この値は 5.6 で導入された。) |
QNetworkReply::ProxyConnectionRefusedError | 101 | プロキシサーバーへの接続が拒否されました(プロキシサーバーがリクエストを受け付けていません)。 |
QNetworkReply::ProxyConnectionClosedError | 102 | プロキシサーバーが、応答全体を受信・処理し終わる前に、接続を早期に切断しました |
QNetworkReply::ProxyNotFoundError | 103 | プロキシのホスト名が見つかりませんでした(無効なプロキシホスト名) |
QNetworkReply::ProxyTimeoutError | 104 | プロキシへの接続がタイムアウトしたか、送信されたリクエストに対してプロキシが時間内に応答しなかった |
QNetworkReply::ProxyAuthenticationRequiredError | 105 | プロキシはリクエストを処理するために認証を必要としていますが、提示された認証情報(ある場合)を受け入れませんでした |
QNetworkReply::ContentAccessDenied | 201 | リモートコンテンツへのアクセスが拒否されました(HTTPエラー403と同様) |
QNetworkReply::ContentOperationNotPermittedError | 202 | リモートコンテンツに対して要求された操作が許可されていません |
QNetworkReply::ContentNotFoundError | 203 | サーバー上でリモートコンテンツが見つかりませんでした(HTTPエラー404と同様) |
QNetworkReply::AuthenticationRequiredError | 204 | リモートサーバーはコンテンツを提供するために認証を必要としていますが、提供された認証情報(もしあれば)が受け入れられませんでした |
QNetworkReply::ContentReSendError | 205 | リクエストを再度送信する必要がありましたが、たとえばアップロードデータを 2 度読み取ることができなかったなどの理由で失敗しました。 |
QNetworkReply::ContentConflictError | 206 | リソースの現在の状態との競合により、リクエストを完了できませんでした。 |
QNetworkReply::ContentGoneError | 207 | 要求されたリソースがサーバー上で利用できなくなりました。 |
QNetworkReply::InternalServerError | 401 | サーバーで予期しない状況が発生し、リクエストを処理できませんでした。 |
QNetworkReply::OperationNotImplementedError | 402 | サーバーは、リクエストを処理するために必要な機能をサポートしていません。 |
QNetworkReply::ServiceUnavailableError | 403 | サーバーは現時点でリクエストを処理できません。 |
QNetworkReply::ProtocolUnknownError | 301 | プロトコルが認識されていないため、Network Access API はこのリクエストを処理できません。 |
QNetworkReply::ProtocolInvalidOperationError | 302 | 要求された操作は、このプロトコルでは無効です。 |
QNetworkReply::UnknownNetworkError | 99 | 不明なネットワーク関連のエラーが検出されました |
QNetworkReply::UnknownProxyError | 199 | 不明なプロキシ関連のエラーが検出されました |
QNetworkReply::UnknownContentError | 299 | リモートコンテンツに関連する不明なエラーが検出されました |
QNetworkReply::ProtocolFailure | 399 | プロトコルの不具合が検出されました(構文解析エラー、無効または予期しない応答など) |
QNetworkReply::UnknownServerError | 499 | サーバーの応答に関連する不明なエラーが検出されました |
error() およびerrorOccurred()も参照してください 。
QNetworkReply::RawHeaderPair
RawHeaderPair は std::pair<QByteArray,QByteArray> であり、最初のQByteArray はヘッダー名、2番目の はヘッダーそのものです。
メンバ関数のドキュメント
[explicit protected] QNetworkReply::QNetworkReply(QObject *parent = nullptr)
親がparent であるQNetworkReplyオブジェクトを作成します。
QNetworkReply オブジェクトを直接インスタンス化することはできません。インスタンス化を行うには、QNetworkAccessManager の関数を使用してください。
[virtual noexcept] QNetworkReply::~QNetworkReply()
この応答を破棄し、それに関連するリソースをすべて解放します。まだ開いているネットワーク接続がある場合は、それらが閉じられます。
[pure virtual slot] void QNetworkReply::abort()
操作を直ちに中止し、まだ開いているネットワーク接続をすべて閉じます。進行中のアップロードも中止されます。
また、finished() シグナルも発信されます。
close() およびfinished()も参照してください 。
QVariant QNetworkReply::attribute(QNetworkRequest::Attribute code) const
コード「code 」に関連付けられた属性を返します。属性が設定されていない場合は、無効な「QVariant 」(型:QMetaType::UnknownType )を返します。
QNetworkRequest::Attribute に記載されているデフォルト値が、この関数によって返される値に適用されることが想定されます。
setAttribute() およびQNetworkRequest::Attributeも参照してください 。
[override virtual] void QNetworkReply::close()
QIODevice::close() を再実装します。
このデバイスの読み取りを閉じます。未読のデータは破棄されますが、ネットワークリソースは処理が完了するまで解放されません。特に、アップロードが進行中の場合は、それが完了するまで継続されます。
すべての操作が終了し、ネットワークリソースが解放されると、finished() シグナルが発行されます。
abort() およびfinished()も参照してください 。
[signal] void QNetworkReply::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
このシグナルは、このネットワークリクエストのダウンロード処理(存在する場合)の進行状況を示すために発せられます。このリクエストに関連するダウンロードがない場合、このシグナルは一度だけ発せられ、bytesReceived およびbytesTotal の値は両方とも 0 となります。
bytesReceived パラメータは受信したバイト数を示し、bytesTotal はダウンロードされる予定の総バイト数を示します。ダウンロードされるバイト数が不明な場合、bytesTotal は-1となります。
bytesReceived がbytesTotal と等しくなった時点で、ダウンロードは完了します。その時点で、bytesTotal は-1ではなくなります。
なお、bytesReceived およびbytesTotal の値は、size()、read() またはreadAll() を通じて取得された総バイト数、あるいはヘッダー(ContentLengthHeader)の値とは異なる場合があることに注意してください。その理由は、ダウンロード中にプロトコルのオーバーヘッドが発生したり、データが圧縮されたりする場合があるためです。
uploadProgress() およびbytesAvailable()も参照してください 。
[signal] void QNetworkReply::encrypted()
このシグナルは、SSL/TLSセッションの初期ハンドシェイクが正常に完了したときに発行されます。この時点では、ユーザーデータはまだ送信されていません。 このシグナルは、証明書チェーンに対する追加のチェックを行うために使用できます。例えば、Webサイトの証明書が変更された際にユーザーに通知する場合などです。応答が期待される基準と一致しない場合は、このシグナルに接続されたスロットからQNetworkReply::abort()を呼び出して、処理を中止する必要があります。使用中のSSL設定は、QNetworkReply::sslConfiguration()メソッドを使用して確認できます。
内部的には、QNetworkAccessManager はリクエストを並行して処理できるように、サーバーに対して複数の接続を開く場合があります。これらの接続は再利用される可能性があるため、encrypted()シグナルは発火しない場合があります。つまり、QNetworkAccessManager の有効期間中、サイトへの最初の接続に対してのみ、このシグナルが確実に受信されることが保証されます。
QSslSocket::encrypted() およびQNetworkAccessManager::encrypted()も参照してください 。
QNetworkReply::NetworkError QNetworkReply::error() const
このリクエストの処理中に検出されたエラーを返します。エラーが検出されなかった場合は、NoError を返します。
setError()も参照してください 。
[signal] void QNetworkReply::errorOccurred(QNetworkReply::NetworkError code)
このシグナルは、返信処理中にエラーが検出された際に発せられます。その後、finished() シグナルが続き、接続が終了したことを示します。
code パラメータには、検出されたエラーのコードが含まれます。エラー状態のテキスト表現を取得するには、errorString()を呼び出してください。
注: このシグナルに接続されたスロット内のオブジェクトを削除しないでください 。deleteLater() を使用してください。
関連項目: error() およびerrorString()。
[signal] void QNetworkReply::finished()
このシグナルは、応答の処理が完了したときに発せられます。このシグナルが発せられた後は、応答のデータやメタデータに対する更新は行われません。
close() またはabort() が呼び出されていない限り、レスポンスは読み取り用に開かれたままとなるため、read() またはreadAll() を呼び出すことでデータを取得できます。特に、readyRead() の結果としてread() が呼び出されなかった場合、readAll() を呼び出すと、QByteArray に全内容が格納されます。
このシグナルは、QNetworkAccessManager::finished() と連動して発火し、そのシグナルの返信パラメータとしてこのオブジェクトが渡されます。
注: このシグナルに接続されたスロット内のオブジェクトを削除しないでください 。deleteLater() を使用してください。
また、isFinished() を使用すると、finished() シグナルを受信する前であっても、QNetworkReply が終了したかどうかを確認することができます。
関連項目: setFinished()、QNetworkAccessManager::finished()、およびisFinished()。
bool QNetworkReply::hasRawHeader(QAnyStringView headerName) const
リモートサーバーから nameheaderName の生ヘッダーが送信された場合、true を返します。
注: Qt 6.7 以前のバージョンでは 、この関数はQByteArray のみを受け付けていました。
関連項目 :rawHeader()
QVariant QNetworkReply::header(QNetworkRequest::KnownHeaders header) const
リモートサーバーから「header 」という既知のヘッダーが送信された場合、その値を返します。ヘッダーが送信されなかった場合は、無効な「QVariant 」を返します。
rawHeader()、setHeader()、およびQNetworkRequest::header()も参照してください 。
[since 6.8] QHttpHeaders QNetworkReply::headers() const
リモートサーバーから送信されたヘッダーを返します。
この関数は Qt 6.8 で導入されました。
setHeaders()、QNetworkRequest::setAttribute()、およびQNetworkRequest::Attributeも参照してください 。
[virtual slot] void QNetworkReply::ignoreSslErrors()
この関数が呼び出されると、証明書検証エラーを含め、ネットワーク接続に関連するSSLエラーは無視されます。
警告:必ず ユーザーに sslErrors()シグナルによって報告されたエラーを確認させ、ユーザーから処理を続行してもよいという確認を得た場合にのみ、このメソッドを呼び出してください 。予期せぬエラーが発生した場合は、応答を中止する必要があります。実際のエラーを確認せずにこのメソッドを呼び出すと、アプリケーションにセキュリティリスクをもたらす可能性が極めて高くなります。使用には細心の注意を払ってください!
この関数は、sslErrors() シグナルに接続されたスロットから呼び出すことができます。このシグナルは、どのようなエラーが検出されたかを示します。
注: QNetworkAccessManager に対してHTTP Strict Transport Securityが有効になっている場合 、この関数は効果を発揮しません。
注:この スロットは オーバーロードされています。このスロットに接続するには:
// Connect using qOverload:
connect(sender, &SenderClass::signal,
networkReply, qOverload<>(&QNetworkReply::ignoreSslErrors));
// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
networkReply, [receiver = networkReply]() { receiver->ignoreSslErrors(); });関連項目: sslConfiguration()、sslErrors()、およびQSslSocket::ignoreSslErrors()。
void QNetworkReply::ignoreSslErrors(const QList<QSslError> &errors)
この関数が呼び出されると、errors に記載されている SSL エラーは無視されます。
注: ほとんどの SSL エラーは証明書に関連しているため 、そのほとんどの場合、その SSL エラーに関連する期待される証明書を設定する必要があります。たとえば、自己署名証明書を使用しているサーバーにリクエストを送信したい場合は、次のコードスニペットを参照してください。
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.この関数を複数回呼び出すと、以前の呼び出しで渡されたエラーのリストが上書きされます。空のリストを引数としてこの関数を呼び出すことで、無視したいエラーのリストをクリアできます。
注: QNetworkAccessManager でHTTP Strict Transport Securityが有効になっている場合 、この関数は効果を発揮しません。
これはオーバーロードされた関数です。
関連項目: sslConfiguration()、sslErrors()、QSslSocket::ignoreSslErrors()、およびQNetworkAccessManager::setStrictTransportSecurityEnabled()。
[virtual protected] void QNetworkReply::ignoreSslErrorsImplementation(const QList<QSslError> &errors)
この仮想メソッドは、ignoreSslErrors() の動作をオーバーライドできるようにするために用意されています。ignoreSslErrors() は、このメソッドのパブリックなラッパーです。errors には、ユーザーが無視したいエラーが含まれています。
ignoreSslErrors()も参照してください 。
bool QNetworkReply::isFinished() const
応答が完了したか、または中止された場合に、true を返します。
isRunning()も参照してください 。
bool QNetworkReply::isRunning() const
リクエストがまだ処理中で、応答がまだ完了しておらず、かつ中止もされていない場合に、true を返します。
isFinished()も参照してください 。
[override virtual] bool QNetworkReply::isSequential() const
QIODevice::isSequential() const を再実装します。
QNetworkAccessManager *QNetworkReply::manager() const
この `QNetworkReply ` オブジェクトの作成に使用された `QNetworkAccessManager ` を返します。初期状態では、これは親オブジェクトでもあります。
[signal] void QNetworkReply::metaDataChanged()
このシグナルは、この応答に含まれるメタデータが変更されるたびに発信されます。メタデータとは、コンテンツ(データ)そのものではないあらゆる情報(ネットワークヘッダーを含む)を指します。 ほとんどの場合、データの最初のバイトを受信する時点で、メタデータは完全に把握されています。ただし、データの処理中に、ヘッダーやその他のメタデータの更新を受信する可能性もあります。
header()、rawHeaderList()、rawHeader()、およびhasRawHeader()も参照してください 。
QNetworkAccessManager::Operation QNetworkReply::operation() const
この返信に対して投稿された操作を返します。
setOperation()も参照してください 。
[signal] void QNetworkReply::preSharedKeyAuthenticationRequired(QSslPreSharedKeyAuthenticator *authenticator)
この信号は、SSL/TLSハンドシェイクでPSK暗号スイートがネゴシエートされ、その結果PSK認証が必要となった場合に送信されます。
PSK を使用する場合、SSL ハンドシェイクを継続させるためには、クライアントは有効な ID と有効な事前共有鍵をサーバーに送信する必要があります。アプリケーションは、このシグナルに接続されたスロット内で、渡された `authenticator ` オブジェクトを必要に応じて設定することで、この情報を提供できます。
注: このシグナルを無視したり 、必要な認証情報を提供しなかったりすると、ハンドシェイクが失敗し、その結果、接続が中断されます。
注: authenticator オブジェクトは reply が所有しており、アプリケーションがこれを削除してはなりません。
「QSslPreSharedKeyAuthenticator」も参照してください 。
QByteArray QNetworkReply::rawHeader(QAnyStringView headerName) const
リモートサーバーから送信されたヘッダー「headerName 」の生の内容を返します。このヘッダーが存在しない場合は、空のバイト配列が返されますが、これは空のヘッダーと見分けがつかない場合があります。サーバーが当該ヘッダーフィールドを送信したかどうかを確認するには、hasRawHeader() を使用してください。
注: Qt 6.7 以前のバージョンでは 、この関数はQByteArray のみを受け付けていました。
関連項目: setRawHeader()、hasRawHeader()、およびheader()。
QList<QByteArray> QNetworkReply::rawHeaderList() const
リモートサーバーから送信されたヘッダーフィールドのリストを、送信された順序で返します。重複するヘッダーは除外されます。
const QList<QNetworkReply::RawHeaderPair> &QNetworkReply::rawHeaderPairs() const
生のヘッダーのペアのリストを返します。
qint64 QNetworkReply::readBufferSize() const
読み取りバッファのサイズをバイト単位で返します。
setReadBufferSize()も参照してください 。
[signal] void QNetworkReply::redirectAllowed()
redirected() シグナルを処理するクライアントコードが新しい URL を確認すると、リダイレクトを実行できるようにするためにこのシグナルを発行します。このプロトコルは、リダイレクトポリシーが次のように設定されているネットワークリクエストに適用されます。QNetworkRequest::UserVerifiedRedirectPolicy
QNetworkRequest::UserVerifiedRedirectPolicy 、QNetworkAccessManager::setRedirectPolicy()、およびQNetworkRequest::RedirectPolicyAttributeも参照してください 。
[signal] void QNetworkReply::redirected(const QUrl &url)
このシグナルは、リクエストでQNetworkRequest::ManualRedirectPolicy が設定されておらず、サーバーが3xxステータス(具体的には301、302、303、305、307、または308ステータスコード)で応答し、Locationヘッダーに有効なURLが含まれており、HTTPリダイレクトを示している場合に発生します。url パラメータには、サーバーがLocationヘッダーで返した新しいリダイレクトURLが含まれます。
QNetworkRequest::RedirectPolicyも参照してください 。
QNetworkRequest QNetworkReply::request() const
この応答に対して送信されたリクエストを返します。特に、リクエストの URL は応答の URL とは異なる場合があることに注意してください。
QNetworkRequest::url()、url()、およびsetRequest()も参照してください 。
[signal, since 6.3] void QNetworkReply::requestSent()
このシグナルは、リクエストが送信された際に1回以上発火します。カスタムな進行状況表示やタイムアウト処理に役立ちます。
この関数は Qt 6.3 で導入されました。
metaDataChanged() およびsocketStartedConnecting()も参照してください 。
[protected] void QNetworkReply::setAttribute(QNetworkRequest::Attribute code, const QVariant &value)
属性 `code ` の値を `value` に設定します。以前に `code ` が設定されていた場合、その値は上書きされます。`value ` が無効な `QVariant` である場合、その属性は解除されます。
attribute() およびQNetworkRequest::setAttribute()も参照してください 。
[protected] void QNetworkReply::setError(QNetworkReply::NetworkError errorCode, const QString &errorString)
エラー条件を `errorCode` に設定します。人間が読み取れるメッセージは、`errorString` で設定されます。
setError() を呼び出しても、errorOccurred(QNetworkReply::NetworkError) シグナルは発火しません。
error() およびerrorString()も参照してください 。
[protected] void QNetworkReply::setFinished(bool finished)
返信を「finished 」に設定します。
この設定を行った後は、応答のデータを変更してはなりません。
finished() およびisFinished()も参照してください 。
[protected] void QNetworkReply::setHeader(QNetworkRequest::KnownHeaders header, const QVariant &value)
既知のヘッダー「header 」の値を「value 」に設定します。このヘッダーに対応する生の形式も同様に設定されます。
header()、setRawHeader()、およびQNetworkRequest::setHeader()も参照してください 。
[protected, since 6.8] void QNetworkReply::setHeaders(const QHttpHeaders &newHeaders)
このネットワーク応答のヘッダーとしてnewHeaders を設定し、以前に設定されたヘッダーを上書きします。
既知のヘッダーと一致するヘッダーがある場合、それらは解析され、対応する解析済み形式も設定されます。
この関数は Qt 6.8 で導入されました。
headers() およびQNetworkRequest::KnownHeadersも参照してください 。
[protected, since 6.8] void QNetworkReply::setHeaders(QHttpHeaders &&newHeaders)
これはオーバーロードされた関数です。
この関数はQt 6.8で導入されました。
[protected] void QNetworkReply::setOperation(QNetworkAccessManager::Operation operation)
このオブジェクトに関連付けられた操作を「operation 」に設定します。この値は、operation() によって返されます。
注:この 操作は 、このオブジェクトの作成時に設定し、その後は変更しないようにしてください。
関連項目: operation() およびsetRequest()。
[protected] void QNetworkReply::setRawHeader(const QByteArray &headerName, const QByteArray &value)
生のヘッダー「headerName 」の値を「value 」に設定します。以前に「headerName 」が設定されていた場合、その設定は上書きされます。同じ名前の複数の HTTP ヘッダーは、値がカンマで区切られて連結された単一のヘッダーと機能的に同等です。
headerName が既知のヘッダーと一致する場合、値value が解析され、対応する解析済み形式も設定されます。
rawHeader()、header()、setHeader()、およびQNetworkRequest::setRawHeader()も参照してください 。
[virtual] void QNetworkReply::setReadBufferSize(qint64 size)
読み取りバッファのサイズをsize バイトに設定します。読み取りバッファとは、QIODevice::read() で読み込まれる前に、ネットワークからダウンロードされたデータを保持するバッファのことです。バッファサイズを0に設定すると、バッファのサイズに制限がなくなります。
QNetworkReply このバッファがいっぱいになると(つまり、bytesAvailable()がsize 以上を返す場合)、QNetworkReply はネットワークからの読み取りを停止しようと試み、それによってダウンロード速度も低下します。バッファのサイズに制限がない場合、 はネットワークから可能な限り高速にダウンロードしようとします。
QAbstractSocket::setReadBufferSize() とは異なり、QNetworkReply は読み取りバッファサイズの正確性を保証できません。つまり、bytesAvailable() はsize を超える値を返す可能性があります。
readBufferSize()も参照してください 。
[protected] void QNetworkReply::setRequest(const QNetworkRequest &request)
このオブジェクトに関連付けられたリクエストを「request 」に設定します。この値は、request() によって返されます。
注: リ クエストは 、このオブジェクトの作成時に設定し、その後は変更しないようにしてください。
request() およびsetOperation()も参照してください 。
void QNetworkReply::setSslConfiguration(const QSslConfiguration &config)
可能であれば、このリクエストに関連付けられたネットワーク接続のSSL設定を、config の設定に設定します。
sslConfiguration()も参照してください 。
[virtual protected] void QNetworkReply::setSslConfigurationImplementation(const QSslConfiguration &configuration)
この仮想メソッドは、setSslConfiguration() の動作をオーバーライドできるようにするために用意されています。setSslConfiguration() は、このメソッドのパブリック・ラッパーです。このメソッドをオーバーライドする場合は、configuration を使用して SSL 設定を行ってください。
sslConfigurationImplementation() およびsetSslConfiguration()も参照してください 。
[protected] void QNetworkReply::setUrl(const QUrl &url)
処理中のURLをurl に設定します。通常、URLは投稿されたリクエストのURLと一致しますが、さまざまな理由により異なる場合があります(たとえば、ファイルパスが絶対パス化されたり、正規化されたりする場合など)。
url()、request()、およびQNetworkRequest::url()も参照してください 。
[protected, since 6.8] void QNetworkReply::setWellKnownHeader(QHttpHeaders::WellKnownHeader name, QByteArrayView value)
ヘッダー `name ` の値を `value` に設定します。以前に `name ` が設定されていた場合、その設定は上書きされます。
この関数は Qt 6.8 で導入されました。
[signal, since 6.3] void QNetworkReply::socketStartedConnecting()
このシグナルは、ソケットが接続中、リクエストを送信する前に0回以上発火します。カスタムな進行状況表示やタイムアウト処理に役立ちます。
この関数は Qt 6.3 で導入されました。
metaDataChanged() およびrequestSent()も参照してください 。
QSslConfiguration QNetworkReply::sslConfiguration() const
SSL が使用されていた場合、この応答に関連付けられた SSL 設定と状態を返します。これには、リモートサーバーの証明書、認証局に至るその証明書チェーン、および使用されている暗号化アルゴリズムが含まれます。
sslErrors() が発行される時点(発行される場合)には、相手側の証明書とその証明書チェーンは既知となっているはずです。
setSslConfiguration()も参照してください 。
[virtual protected] void QNetworkReply::sslConfigurationImplementation(QSslConfiguration &configuration) const
この仮想メソッドは、sslConfiguration() の動作をオーバーライドできるようにするために用意されています。sslConfiguration() は、このメソッドのパブリックなラッパーです。設定はconfiguration として返されます。
setSslConfigurationImplementation() およびsslConfiguration()も参照してください 。
[signal] void QNetworkReply::sslErrors(const QList<QSslError> &errors)
このシグナルは、SSL/TLSセッションの確立中に、証明書の検証エラーなど、何らかのエラーが発生した場合に発せられます。errors パラメータには、エラーの一覧が含まれます。
エラーが致命的ではなく、接続を続行すべきであることを示すには、このシグナルに接続されたスロットからignoreSslErrors()関数を呼び出す必要があります。呼び出されない場合、データ(URLを含む)のやり取りが行われる前にSSLセッションは切断されます。
このシグナルを使用して、セキュリティが侵害されている可能性があることを示すエラーメッセージをユーザーに表示したり、SSL設定を表示したりすることができます(SSL設定を取得するには、sslConfiguration()を参照してください)。ユーザーがリモート証明書を分析した上で続行することを決定した場合、スロットはignoreSslErrors()を呼び出す必要があります。
QSslSocket::sslErrors()、QNetworkAccessManager::sslErrors()、sslConfiguration()、およびignoreSslErrors()も参照してください 。
[signal] void QNetworkReply::uploadProgress(qint64 bytesSent, qint64 bytesTotal)
このシグナルは、このネットワークリクエストのアップロード部分の進行状況(ある場合)を示すために発せられます。このリクエストに関連するアップロードがない場合、このシグナルは発せられません。
bytesSent パラメータはアップロードされたバイト数を示し、bytesTotal はアップロードされる予定の総バイト数を示します。アップロードされるバイト数が特定できない場合、bytesTotal は-1になります。
bytesSent がbytesTotal と等しくなった時点で、アップロードは完了します。その時点で、bytesTotal は -1 ではなくなります。
downloadProgress()も参照してください 。
QUrl QNetworkReply::url() const
ダウンロードまたはアップロードされたコンテンツのURLを返します。なお、このURLは元のリクエストのURLとは異なる場合があります。リクエストでリダイレクトが有効になっていた場合、この関数はネットワークAPIが現在アクセスしているURL、つまりリクエストがリダイレクトされた先のリソースのURLを返します。
関連項目: request()、setUrl()、QNetworkRequest::url()、およびredirected()。
[override virtual protected] qint64 QNetworkReply::writeData(const char *data, qint64 len)
QIODevice::writeData(const char *data, qint64 maxSize) の再実装です。
© 2026 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.