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 はNetwork Programming 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 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) |
保護された関数
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 |
詳細説明
QNetworkReply クラスは、QNetworkAccessManager で投稿されたリクエストに関連するデータとメタデータを含みます。QNetworkReply クラスは、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 はQPair<QByteArray,QByteArray> で、最初のQByteArray がヘッダー名、2 番目がヘッダーです。
メンバ関数ドキュメント
[explicit protected]
QNetworkReply::QNetworkReply(QObject *parent = nullptr)
親を持つ QNetworkReply オブジェクトを作成しますparent 。
QNetworkReply オブジェクトを直接インスタンス化することはできません。その場合は、QNetworkAccessManager 関数を使用してください。
[virtual noexcept]
QNetworkReply::~QNetworkReply()
この応答を破棄し、それに関連するリソースを解放します。ネットワーク接続がまだ開いている場合は、それらが閉じられます。
[pure virtual slot]
void QNetworkReply::abort()
操作を直ちに中止し、まだ開いているネットワーク接続をすべて閉じます。まだ進行中のアップロードも中止される。
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() シグナルが発行される。
[signal]
void QNetworkReply::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
このシグナルは、このネットワークリクエストのダウンロード部分の進行状 況を示すために発行される。このリクエストに関連するダウンロードがない場合、このシグナルはbytesReceived とbytesTotal の両方の値として 0 を指定して 1 回だけ発行される。
bytesReceived パラメータは受信したバイト数を示し、bytesTotal はダウンロードされると予想される総バイト数を示す。ダウンロードされるバイト数が不明な場合、bytesTotal は -1 となる。
ダウンロードは、bytesReceived がbytesTotal と等しくなったときに終了する。このとき、bytesTotal は-1にはならない。
bytesReceived とbytesTotal の値は、size()、read()またはreadAll() で取得した合計バイト数、あるいはヘッダー(ContentLengthHeader)の値と異なる場合があることに注意。その理由は、プロトコルのオーバーヘッドがあったり、ダウンロード中に データが圧縮されたりする可能性があるからである。
uploadProgress() およびbytesAvailable()も参照 。
[signal]
void QNetworkReply::encrypted()
このシグナルは、SSL/TLSセッションが最初のハンドシェイクに成功したときに発せられる。この時点では、ユーザーデータは送信されていない。このシグナルは、例えばウェブサイトの証明書が変更されたときにユーザーに通知するなど、証明書チェーンの追加チェックを実行するために使うことができる。リプライが期待された条件に一致しない場合、このシグナルに接続されたスロットから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
headerName という名前の raw ヘッダがリモートサーバーから送信された場合、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 が有効になっている場合、この関数は何の効果もない。
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.
この関数を複数回呼び出すと、前の呼び出しで渡されたエラーのリストが置き換わります。この関数を複数回呼び出すと、前の呼び出しで渡されたエラーのリストが置き換えられます。この関数を空のリストで呼び出すと、無視したいエラーのリストを消去できます。
注意: HTTP Strict Transport Security がQNetworkAccessManager で有効になっている場合、この関数は何の効果もありません。
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()も参照 。
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 オブジェクトはリプライが所有するので、アプリケーションが削除してはならない。
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 がリクエストに設定されておらず、サーバーがHTTPリダイレクトを示す有効なurlをlocationヘッダーに持つ3xxステータス(具体的には301、302、303、305、307、308のステータスコード)で応答した場合に発行される。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() 関数を呼び出す必要があります。この関数が呼ばれない場合、SSLセッションは(URLを含む)データが交換される前に切断されます。
このシグナルは、セキュリティが侵害されている可能性があることを示すエラーメッセージをユーザーに表示し、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は元のリクエストのものとは異なる可能性があることに注意。リクエストでリダイレクトが有効になっていた場合、この関数はネットワークAPIが アクセスしている現在のURL、つまりリクエストがリダイレクトされたリソースの URLを返す。
request(),setUrl(),QNetworkRequest::url(),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.