QNetworkRequestFactory Class
共通のネットワーク要求プロパティを共有するリモートサーバーエンドポイントを グループ化するための便利なクラスです。詳細...
Header: | #include <QNetworkRequestFactory> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
Since: | Qt 6.7 |
- 継承メンバを含む全メンバ一覧
- QNetworkRequestFactory は、暗黙の共有クラスに属しています。
パブリック関数
QNetworkRequestFactory() | |
QNetworkRequestFactory(const QUrl &baseUrl) | |
QNetworkRequestFactory(const QNetworkRequestFactory &other) | |
QNetworkRequestFactory(QNetworkRequestFactory &&other) | |
~QNetworkRequestFactory() | |
(since 6.8) QVariant | attribute(QNetworkRequest::Attribute attribute) const |
(since 6.8) QVariant | attribute(QNetworkRequest::Attribute attribute, const QVariant &defaultValue) const |
QUrl | baseUrl() const |
QByteArray | bearerToken() const |
(since 6.8) void | clearAttribute(QNetworkRequest::Attribute attribute) |
(since 6.8) void | clearAttributes() |
void | clearBearerToken() |
void | clearCommonHeaders() |
void | clearPassword() |
void | clearQueryParameters() |
void | clearUserName() |
QHttpHeaders | commonHeaders() const |
QNetworkRequest | createRequest() const |
QNetworkRequest | createRequest(const QString &path) const |
QNetworkRequest | createRequest(const QUrlQuery &query) const |
QNetworkRequest | createRequest(const QString &path, const QUrlQuery &query) const |
QString | password() const |
(since 6.8) QNetworkRequest::Priority | priority() const |
QUrlQuery | queryParameters() const |
(since 6.8) void | setAttribute(QNetworkRequest::Attribute attribute, const QVariant &value) |
void | setBaseUrl(const QUrl &url) |
void | setBearerToken(const QByteArray &token) |
void | setCommonHeaders(const QHttpHeaders &headers) |
void | setPassword(const QString &password) |
(since 6.8) void | setPriority(QNetworkRequest::Priority priority) |
void | setQueryParameters(const QUrlQuery &query) |
void | setSslConfiguration(const QSslConfiguration &configuration) |
void | setTransferTimeout(std::chrono::milliseconds timeout) |
void | setUserName(const QString &userName) |
QSslConfiguration | sslConfiguration() const |
void | swap(QNetworkRequestFactory &other) |
std::chrono::milliseconds | transferTimeout() const |
QString | userName() const |
QNetworkRequestFactory & | operator=(QNetworkRequestFactory &&other) |
QNetworkRequestFactory & | operator=(const QNetworkRequestFactory &other) |
関連する非メンバー
QDebug | operator<<(QDebug debug, const QNetworkRequestFactory &factory) |
詳細説明
REST サーバーには、多くの場合、同じヘッダーやその他のデータを必要とするエンドポイントがあります。このようなエンドポイントを QNetworkRequestFactory でグループ化することで、これらのエンドポイントへのリクエストを発行するのがより便利になります。新しいリクエストを作成する際には、パスや クエリパラメータなどの一般的に変化する部分のみが提供されます。
QNetworkRequestFactory の基本的な使用手順は次のとおりです:
- インスタンス化
- すべてのリクエストに共通するデータの設定
- リクエストの発行
使用例
// Instantiate a factory somewhere suitable in the application QNetworkRequestFactory api{{"https://example.com/v1"_L1}}; // Set bearer token api.setBearerToken("my_token"); // Issue requests (reply handling omitted for brevity) manager.get(api.createRequest("models"_L1)); // https://example.com/v1/models // The conventional leading '/' for the path can be used as well manager.get(api.createRequest("/models"_L1)); // https://example.com/v1/models
メンバ関数 説明
QNetworkRequestFactory::QNetworkRequestFactory()
新しい QNetworkRequestFactory オブジェクトを作成します。setBaseUrl() を使用して、リクエストに有効なベース URL を設定します。
QNetworkRequestFactory(const QUrl &baseUrl) およびsetBaseUrl()も参照してください 。
[explicit]
QNetworkRequestFactory::QNetworkRequestFactory(const QUrl &baseUrl)
新しい QNetworkRequestFactory オブジェクトを作成し、ベース URL をbaseUrl に初期化 します。ベース URL は、後続のネットワーク要求に入力するために使用されます。
URL にパス・コンポーネントが含まれている場合、そのパスが抽出され、後続のネット ワーク・リクエストのベース・パスとして使用されます。つまり、個々のリクエストのリクエスト時に指定されたパスは、 下図のように、このベースパスに追加される:
// Here the API version v2 is used as the base path: QNetworkRequestFactory api{{"https://example.com/v2"_L1}}; // ... manager.get(api.createRequest("models"_L1)); // https://example.com/v2/models // Equivalent with a leading '/' manager.get(api.createRequest("/models"_L1)); // https://example.com/v2/models
QNetworkRequestFactory::QNetworkRequestFactory(const QNetworkRequestFactory &other)
other のコピーを作成します。
[noexcept]
QNetworkRequestFactory::QNetworkRequestFactory(QNetworkRequestFactory &&other)
移動-ファクトリーをother から構築する。
注意: 移動元のオブジェクトother は部分的に形成された状態に置かれ、有効な操作は破棄と新しい値の割り当てのみです。
[noexcept]
QNetworkRequestFactory::~QNetworkRequestFactory()
このQNetworkRequestFactory オブジェクトを破棄します。
[since 6.8]
QVariant QNetworkRequestFactory::attribute(QNetworkRequest::Attribute attribute) const
attribute に関連付けられた値を返します。属性が設定されていない場合は、デフォルトで構成されたQVariant を返します。
この関数は Qt 6.8 で導入されました。
attribute(QNetworkRequest::Attribute, const QVariant &),setAttribute(),clearAttributes(),QNetworkRequest::Attributeも参照してください 。
[since 6.8]
QVariant QNetworkRequestFactory::attribute(QNetworkRequest::Attribute attribute, const QVariant &defaultValue) const
attribute属性が設定されていない場合は、defaultValue を返します。
この関数は Qt 6.8 で導入されました。
attribute()、setAttribute()、clearAttributes()、QNetworkRequest::Attributeも参照してください 。
QUrl QNetworkRequestFactory::baseUrl() const
個々のリクエストに使われるベース URL を返します。
ベース URL はパスコンポーネントを含むことができます。このパスは、個々のリクエストを生成するときに提供されるパスの 「プレフィックス」として使用される。
setBaseUrl()も参照のこと 。
QByteArray QNetworkRequestFactory::bearerToken() const
設定されているベアラートークンを返します。
ベアラートークンが存在する場合、リクエストに対してAuthorization: Bearer my_token
ヘッダーを設定するために使用される。これは一般的な認可規約であり、追加の便宜として提供される。
ベアラートークンを取得する手段はさまざまである。標準的な方法には、OAuth2
、サービス プロバイダーのWebサイト/ダッシュボードが含まれる。ベアラートークンは時間の経過とともに変化することが予想される。たとえば、リフレッシュ・トークンで更新された場合、常に新しいトークンを再度設定することで、その後のリクエストで最新の有効なトークンが使用されるようになります。
ベアラ・トークンの存在は、commonHeaders()のリストには影響しない。commonHeaders()がAuthorization
ヘッダーもリストしている場合、それは上書きされる。
setBearerToken() およびcommonHeaders()も参照のこと 。
[since 6.8]
void QNetworkRequestFactory::clearAttribute(QNetworkRequest::Attribute attribute)
このファクトリーに設定されているattribute をクリアします。
この関数は Qt 6.8 で導入されました。
attribute() およびsetAttribute() も参照して ください。
[since 6.8]
void QNetworkRequestFactory::clearAttributes()
このファクトリーに設定されている属性をクリアします。
この関数は Qt 6.8 で導入されました。
attribute() およびsetAttribute() も参照して ください。
void QNetworkRequestFactory::clearBearerToken()
ベアラートークンをクリアします。
bearerToken()も参照して ください。
void QNetworkRequestFactory::clearCommonHeaders()
現在のヘッダをクリアします。
commonHeaders() およびsetCommonHeaders() も参照して ください。
void QNetworkRequestFactory::clearPassword()
このファクトリに設定されているパスワードをクリアします。
password()、setPassword()、およびuserName() も参照して ください。
void QNetworkRequestFactory::clearQueryParameters()
クエリ・パラメータをクリアします。
queryParameters() も参照して ください。
void QNetworkRequestFactory::clearUserName()
このファクトリーに設定されているユーザー名をクリアします。
QHttpHeaders QNetworkRequestFactory::commonHeaders() const
現在設定されているヘッダを返します。
setCommonHeaders() およびclearCommonHeaders()も参照して ください。
QNetworkRequest QNetworkRequestFactory::createRequest() const
QNetworkRequest を返します。
返されたリクエストは、このファクトリーに設定されているデータで満たされます。
createRequest(const QUrlQuery&) およびcreateRequest(const QString&, const QUrlQuery&)も参照して ください。
QNetworkRequest QNetworkRequestFactory::createRequest(const QString &path) const
QNetworkRequest を返します。
返されるリクエストのURLは、提供されたpath をbaseUrl (それ自身がパスコンポーネントを持つ可能性があります)に追加することで形成されます。
createRequest(const QString &, const QUrlQuery &),createRequest() およびbaseUrl()も参照 。
QNetworkRequest QNetworkRequestFactory::createRequest(const QUrlQuery &query) const
QNetworkRequest を返します。
返されるリクエストのURLは、指定されたquery をbaseUrl に追加することで形成されます。
createRequest(const QString &, const QUrlQuery &),createRequest() およびbaseUrl()も参照 。
QNetworkRequest QNetworkRequestFactory::createRequest(const QString &path, const QUrlQuery &query) const
QNetworkRequest を返します。
返されるリクエストURLは、提供されたpath とquery をbaseUrl (パスコンポーネントを持つ可能性がある) に追加することで形成される。
指定されたpath にクエリー項目が含まれている場合、それらはquery の項目と結合されます。
createRequest(const QUrlQuery&)、createRequest()、およびbaseUrl()も参照して ください。
QString QNetworkRequestFactory::password() const
このファクトリに設定されているパスワードを返します。
setPassword()、password()、clearPassword()、およびuserName() も参照して ください。
[since 6.8]
QNetworkRequest::Priority QNetworkRequestFactory::priority() const
このファクトリーが今後作成するリクエストに割り当てられた優先順位を返します。
この関数は Qt 6.8 で導入されました。
setPriority() およびQNetworkRequest::priority()も参照してください 。
QUrlQuery QNetworkRequestFactory::queryParameters() const
個々のリクエストのクエリパラメータに追加されるクエリパラメータを返します。クエリパラメータは、個々のcreateRequest() で指定されたクエリパラメータに追加されます。
繰り返しクエリパラメータを使用するケースはサーバーに依存しますが、典型的な例としては、言語設定?lang=en
、フォーマット指定?format=json
、APIバージョン指定?version=1.0
、APIキー認証などがあります。
setQueryParameters()、clearQueryParameters()、createRequest()も参照 。
[since 6.8]
void QNetworkRequestFactory::setAttribute(QNetworkRequest::Attribute attribute, const QVariant &value)
attribute に関連付けられた値をvalue に設定する。 属性がすでに設定されている場合、以前の値が置き換えられる。属性は、このファクトリーによって将来作成されるすべてのリクエストに設定されます。
この関数は Qt 6.8 で導入されました。
attribute(),clearAttribute(),clearAttributes(),QNetworkRequest::Attributeも参照してください 。
void QNetworkRequestFactory::setBaseUrl(const QUrl &url)
個々のリクエストで使用されるベース URL をurl に設定します。
baseUrl()も参照して ください。
void QNetworkRequestFactory::setBearerToken(const QByteArray &token)
ベアラ・トークンをtoken に設定します。
bearerToken() およびclearBearerToken() も参照 。
void QNetworkRequestFactory::setCommonHeaders(const QHttpHeaders &headers)
すべてのリクエストに共通するheaders を設定します。
これらのヘッダは個々のリクエストのヘッダに追加されます。これは、リクエスト間で繰り返されるヘッダーを設定するための 便利な仕組みです。
commonHeaders()、clearCommonHeaders()、createRequest()も参照 。
void QNetworkRequestFactory::setPassword(const QString &password)
このファクトリーのパスワードをpassword に設定します。
このパスワードは、createRequest() が呼び出されたときにリクエスト URL に設定されます。QRestAccessManager /QNetworkAccessManager は、サーバーが認証が必要であることを示す場合、これらの資格情報の使用を試みます。
password()、clearPassword()、およびuserName()も参照 。
[since 6.8]
void QNetworkRequestFactory::setPriority(QNetworkRequest::Priority priority)
このファクトリーによって今後作成されるリクエストの優先順位をpriority に設定します。
デフォルトの優先順位はQNetworkRequest::NormalPriority です。
この関数は Qt 6.8 で導入されました。
priority() およびQNetworkRequest::setPriority()も参照してください 。
void QNetworkRequestFactory::setQueryParameters(const QUrlQuery &query)
個々のリクエストのクエリパラメータに追加されるquery パラメータを設定します。
queryParameters() およびclearQueryParameters() も参照して ください。
void QNetworkRequestFactory::setSslConfiguration(const QSslConfiguration &configuration)
SSL 設定をconfiguration に設定します。
sslConfiguration() も参照して ください。
void QNetworkRequestFactory::setTransferTimeout(std::chrono::milliseconds timeout)
転送に使用するtimeout を設定します。
transferTimeout()、QNetworkRequest::setTransferTimeout()、およびQNetworkAccessManager::setTransferTimeout() も参照して ください。
void QNetworkRequestFactory::setUserName(const QString &userName)
このファクトリーのユーザー名をuserName に設定します。
このユーザ名は、createRequest() が呼び出されたときにリクエスト URL に設定されます。QRestAccessManager /QNetworkAccessManager は、サーバーが認証が必要であることを示す場合、これらの資格情報の使用を試みます。
userName()、clearUserName() およびpassword()も参照 。
QSslConfiguration QNetworkRequestFactory::sslConfiguration() const
このファクトリーに設定されている SSL 構成を返します。SSL 構成は個々のリクエストに設定されます。
setSslConfiguration()も参照して ください。
[noexcept]
void QNetworkRequestFactory::swap(QNetworkRequestFactory &other)
このファクトリーをother と交換します。この操作は非常に高速で、失敗することはありません。
std::chrono::milliseconds QNetworkRequestFactory::transferTimeout() const
転送に使用されるタイムアウトを返します。
setTransferTimeout()、QNetworkRequest::transferTimeout() およびQNetworkAccessManager::transferTimeout() も参照して ください。
QString QNetworkRequestFactory::userName() const
このファクトリーに設定されているユーザー名を返します。
setUserName()、clearUserName()、およびpassword() も参照 。
[noexcept]
QNetworkRequestFactory &QNetworkRequestFactory::operator=(QNetworkRequestFactory &&other)
Move-assignother 、このファクトリーへの参照を返します。
注意: 移動元のオブジェクトother は部分的に形成された状態に置かれ、有効な操作は破棄と新しい値の割り当てのみです。
QNetworkRequestFactory &QNetworkRequestFactory::operator=(const QNetworkRequestFactory &other)
other のコピーを作成し、このファクトリーへの参照を返します。
関連する非メンバー
QDebug operator<<(QDebug debug, const QNetworkRequestFactory &factory)
factory をdebug ストリームに書き込みます。
デバッグテクニック」も参照してください 。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。