QNetworkReply Class

QNetworkReply クラスは、QNetworkAccessManager で送信されたリクエストのデータとヘッダーを含んでいます。詳細...

Header: #include <QNetworkReply>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network
Inherits: QIODevice

注:このクラスの関数はすべてリエントラントです。

パブリック型

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::NoError0エラー状態なし。

注意: HTTP プロトコルがリダイレクトを返す場合、エラーは報告されません。リダイレクトがあるかどうかはQNetworkRequest::RedirectionTargetAttribute 属性で確認できます。

定数説明
QNetworkReply::ConnectionRefusedError1リモートサーバが接続を拒否しました (サーバはリクエストを受け付けていません)。
QNetworkReply::RemoteHostClosedError2リモートサーバーが、応答全体を受信して処理する前に、接続を早期に切断した。
QNetworkReply::HostNotFoundError3リモートホスト名が見つからなかった (無効なホスト名)
QNetworkReply::TimeoutError4リモートサーバーへの接続がタイムアウトした。
QNetworkReply::OperationCanceledError5操作が完了する前にabort() またはclose() を呼び出してキャンセルした。
QNetworkReply::SslHandshakeFailedError6SSL/TLS ハンドシェイクに失敗し、暗号化チャネルを確立できなかった。sslErrors() シグナルが発行されるべきだった。
QNetworkReply::TemporaryNetworkFailureError7ネットワークからの切断により接続が切断されたが、システムが別のアクセス・ポイントへのローミングを開始した。リクエストを再送信してください。接続が再確立され次第、処理されます。
QNetworkReply::NetworkSessionFailedError8ネットワークから切断されたか、ネットワークの起動に失敗したため、接続が切断されました。
QNetworkReply::BackgroundRequestNotAllowedError9プラットフォームポリシーにより、バックグラウンドリクエストは現在許可されていません。
QNetworkReply::TooManyRedirectsError10リダイレクトをたどっている間に上限に達しました。リミットはデフォルトで 50 に設定されているか、QNetworkRequest::setMaxRedirectsAllowed() によって設定されます。(この値は 5.6 で導入されました)。
QNetworkReply::InsecureRedirectError11以下のリダイレクト中に、ネットワークアクセス API が暗号化されたプロトコル (https) から暗号化されていないプロトコル (http) へのリダイレクトを検出しました。(この値は 5.6 で導入された)。
QNetworkReply::ProxyConnectionRefusedError101プロキシサーバへの接続が拒否された(プロキシサーバがリクエストを受け付けていない)
QNetworkReply::ProxyConnectionClosedError102プロキシサーバが応答をすべて受信して処理する前に、接続を早期に切断した。
QNetworkReply::ProxyNotFoundError103プロキシホスト名が見つからない (プロキシホスト名が無効)
QNetworkReply::ProxyTimeoutError104プロキシへの接続がタイムアウトした、あるいはプロキシが送信した リクエストに時間内に応答しなかった。
QNetworkReply::ProxyAuthenticationRequiredError105プロキシがリクエストを処理するために認証を要求したが、(もしあれば) 提供された信用証明書を受け入れなかった。
QNetworkReply::ContentAccessDenied201リモートコンテンツへのアクセスが拒否された(HTTPエラー403と同様)
QNetworkReply::ContentOperationNotPermittedError202リモートコンテンツに対して要求された操作が許可されていない。
QNetworkReply::ContentNotFoundError203リモートコンテンツがサーバーで見つからなかった (HTTP エラー 404 と同様)
QNetworkReply::AuthenticationRequiredError204リモートサーバーがコンテンツを提供するために認証を要求したが、提供された認証情報が受け入れられなかった(もしあれば)。
QNetworkReply::ContentReSendError205リクエストを再度送信する必要があったが、アップロードデータを2回目に読み取ることができなかったなどの理由で失敗した。
QNetworkReply::ContentConflictError206リソースの現在の状態と競合したため、リクエストを完了できなかった。
QNetworkReply::ContentGoneError207要求されたリソースがサーバーで利用できなくなった。
QNetworkReply::InternalServerError401サーバーが予期しない状況に遭遇し、リクエストに応えられなかった。
QNetworkReply::OperationNotImplementedError402サーバーがリクエストの処理に必要な機能をサポートしていない。
QNetworkReply::ServiceUnavailableError403サーバーが現時点ではリクエストを処理できない。
QNetworkReply::ProtocolUnknownError301プロトコルが不明なため、Network Access API がリクエストを処理できない。
QNetworkReply::ProtocolInvalidOperationError302要求された操作は、このプロトコルでは無効です。
QNetworkReply::UnknownNetworkError99不明なネットワーク関連のエラーが検出された。
QNetworkReply::UnknownProxyError199不明なプロキシ関連のエラーが検出された
QNetworkReply::UnknownContentError299リモートコンテンツに関連する不明なエラーが検出された。
QNetworkReply::ProtocolFailure399プロトコルの破壊が検出された(解析エラー、無効な応答、予期しない応答など)
QNetworkReply::UnknownServerError499サーバー応答に関する不明なエラーが検出された

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()

この応答を破棄し、この応答に関連付けられたすべてのリソースを解放します。ネットワーク接続がまだ開かれている場合は、それらが閉じられます。

abort() およびclose()も参照してください

[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)

このシグナルは、このネットワーク・リクエストのダウンロード部分の進行状 況を示すために発行されます。この要求に関連付けられているダウンロードがない場合、このシグナ ルはbytesReceivedbytesTotal の両方の値として 0 を指定して 1 回だけ発行されます。

bytesReceived パラメータは受信したバイト数を示し、bytesTotal はダウンロードされると予想される総バイト数を示す。ダウンロードされるバイト数が不明な場合、bytesTotal は -1 となる。

ダウンロードは、bytesReceivedbytesTotal と等しくなったときに終了する。このとき、bytesTotal は-1にはならない。

bytesReceivedbytesTotal の値は、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 という名前の未加工ヘッダがリモートサーバーから送信された場合、true を返します。

注意: Qt 6.7 より前のバージョンでは、この関数はQByteArray のみを受け取りました。

rawHeader()も参照してください

既知のヘッダー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エラーでは、この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::UserVerifiedRedirectPolicyQNetworkAccessManager::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ヘッダは、カンマで区切って値を連結した1つのヘッダと 機能的に等価です。

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()、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となる。

アップロードは、bytesSentbytesTotal と等しくなったときに終了する。このとき、bytesTotal は-1にはならない。

downloadProgress()も参照のこと

QUrl QNetworkReply::url() const

ダウンロードまたはアップロードされたコンテンツのURLを返す。このURLは、元のリクエストのURLとは異なる可能性があることに注意。リクエストでリダイレクトが有効になっていた場合、この関数はネットワークAPIが アクセスしている現在のURL、つまりリクエストがリダイレクトされたリソースの URLを返します。

request(),setUrl(),QNetworkRequest::url(),redirected()も参照してください

©2024 The Qt Company Ltd. ここに含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。