QNetworkAccessManager Class

QNetworkAccessManagerクラスは、アプリケーションがネットワーク要求を送信し、応答を受信することを可能にします。詳細...

ヘッダー #include <QNetworkAccessManager>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network
継承: QObject

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

パブリック・タイプ

enum Operation { HeadOperation, GetOperation, PutOperation, PostOperation, DeleteOperation, CustomOperation }

パブリック関数

QNetworkAccessManager(QObject *parent = nullptr)
virtual ~QNetworkAccessManager()
void addStrictTransportSecurityHosts(const QList<QHstsPolicy> &knownHosts)
bool autoDeleteReplies() const
QAbstractNetworkCache *cache() const
void clearAccessCache()
void clearConnectionCache()
void connectToHost(const QString &hostName, quint16 port = 80)
void connectToHostEncrypted(const QString &hostName, quint16 port = 443, const QSslConfiguration &sslConfiguration = QSslConfiguration::defaultConfiguration())
void connectToHostEncrypted(const QString &hostName, quint16 port, const QSslConfiguration &sslConfiguration, const QString &peerName)
QNetworkCookieJar *cookieJar() const
QNetworkReply *deleteResource(const QNetworkRequest &request)
void enableStrictTransportSecurityStore(bool enabled, const QString &storeDir = QString())
QNetworkReply *get(const QNetworkRequest &request)
(since 6.7) QNetworkReply *get(const QNetworkRequest &request, QIODevice *data)
(since 6.7) QNetworkReply *get(const QNetworkRequest &request, const QByteArray &data)
QNetworkReply *head(const QNetworkRequest &request)
bool isStrictTransportSecurityEnabled() const
bool isStrictTransportSecurityStoreEnabled() const
QNetworkReply *post(const QNetworkRequest &request, QIODevice *data)
QNetworkReply *post(const QNetworkRequest &request, QHttpMultiPart *multiPart)
QNetworkReply *post(const QNetworkRequest &request, const QByteArray &data)
(since 6.8) QNetworkReply *post(const QNetworkRequest &request, std::nullptr_t nptr)
QNetworkProxy proxy() const
QNetworkProxyFactory *proxyFactory() const
QNetworkReply *put(const QNetworkRequest &request, QIODevice *data)
QNetworkReply *put(const QNetworkRequest &request, QHttpMultiPart *multiPart)
QNetworkReply *put(const QNetworkRequest &request, const QByteArray &data)
(since 6.8) QNetworkReply *put(const QNetworkRequest &request, std::nullptr_t nptr)
QNetworkRequest::RedirectPolicy redirectPolicy() const
QNetworkReply *sendCustomRequest(const QNetworkRequest &request, const QByteArray &verb, QIODevice *data = nullptr)
QNetworkReply *sendCustomRequest(const QNetworkRequest &request, const QByteArray &verb, QHttpMultiPart *multiPart)
QNetworkReply *sendCustomRequest(const QNetworkRequest &request, const QByteArray &verb, const QByteArray &data)
void setAutoDeleteReplies(bool shouldAutoDelete)
void setCache(QAbstractNetworkCache *cache)
void setCookieJar(QNetworkCookieJar *cookieJar)
void setProxy(const QNetworkProxy &proxy)
void setProxyFactory(QNetworkProxyFactory *factory)
void setRedirectPolicy(QNetworkRequest::RedirectPolicy policy)
void setStrictTransportSecurityEnabled(bool enabled)
void setTransferTimeout(int timeout)
(since 6.7) void setTransferTimeout(std::chrono::milliseconds duration = QNetworkRequest::DefaultTransferTimeout)
QList<QHstsPolicy> strictTransportSecurityHosts() const
virtual QStringList supportedSchemes() const
int transferTimeout() const
(since 6.7) std::chrono::milliseconds transferTimeoutAsDuration() const

シグナル

void authenticationRequired(QNetworkReply *reply, QAuthenticator *authenticator)
void encrypted(QNetworkReply *reply)
void finished(QNetworkReply *reply)
void preSharedKeyAuthenticationRequired(QNetworkReply *reply, QSslPreSharedKeyAuthenticator *authenticator)
void proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator)
void sslErrors(QNetworkReply *reply, const QList<QSslError> &errors)

プロテクト関数

virtual QNetworkReply *createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &originalReq, QIODevice *outgoingData = nullptr)

詳細説明

ネットワークアクセスAPIは、1つのQNetworkAccessManagerオブジェクトを中心に構成され、送信するリクエストの共通コンフィグレーションと設定を保持します。QNetworkAccessManager オブジェクトには、プロキシとキャッシュの設定、そのような問題に関連するシグナル、およびネットワーク操作の進行状況を監視するために使用できるリプライ・シグナルが含まれています。QNetworkAccessManager のインスタンスは、Qt アプリケーション全体で 1 つあれば十分です。QNetworkAccessManager はQObject に基づいているため、QNetworkAccessManager が属するスレッドからのみ使用できます。

QNetworkAccessManager オブジェクトが作成されると、アプリケーショ ンはそれを使ってネットワーク経由でリクエストを送信できます。リクエストとオプションのデータを受け取り、QNetworkReply オブジェクトを返す標準関数が提供されています。返されたオブジェクトは、対応するリクエストに応答して返されたデータを取得するために使用される。

ネットワークからの単純なダウンロードは、次のようにして行うことができる:

QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager, &QNetworkAccessManager::finished,
        this, &MyClass::replyFinished);

manager->get(QNetworkRequest(QUrl("http://qt-project.org")));

QNetworkAccessManagerには非同期APIがあります。上記のreplyFinished スロットが呼び出されると、パラメータとして、ダウンロードされたデータとメタデータ(ヘッダーなど)を含むQNetworkReply オブジェクトが渡されます。

注意: リクエストが終了した後、QNetworkReply オブジェクトを適切なタイミングで削除するのはユーザーの責任です。finished()に接続されたスロット内で直接削除しないでください。deleteLater ()関数を使用できます。

注意: QNetworkAccessManager は、受信したリクエストをキューに入れます。並行して実行されるリクエストの数は、プロトコルに依存します。現在、デスクトップ・プラットフォーム上のHTTPプロトコルでは、1つのホスト/ポートの組み合わせに対して6つのリクエストが並列実行されます。

マネージャーがすでに存在すると仮定して、より複雑な例を挙げることができる:

QNetworkRequest request;
request.setUrl(QUrl("http://qt-project.org"));
request.setRawHeader("User-Agent", "MyOwnBrowser 1.0");

QNetworkReply *reply = manager->get(request);
connect(reply, &QIODevice::readyRead, this, &MyClass::slotReadyRead);
connect(reply, &QNetworkReply::errorOccurred,
        this, &MyClass::slotError);
connect(reply, &QNetworkReply::sslErrors,
        this, &MyClass::slotSslErrors);

QNetworkRequestQNetworkReplyQNetworkProxyも参照のこと

メンバー型ドキュメント

enum QNetworkAccessManager::Operation

この応答が処理している操作を示す。

定数説明
QNetworkAccessManager::HeadOperation1ヘッダを取得する操作 (head() で作成)
QNetworkAccessManager::GetOperation2ヘッダを取得してコンテンツをダウンロードする操作 (get() で作成)
QNetworkAccessManager::PutOperation3コンテンツのアップロード操作 (put() で作成)
QNetworkAccessManager::PostOperation4HTML フォームの内容を HTTP POST で送信します (post() で作成)。
QNetworkAccessManager::DeleteOperation5コンテンツの削除操作 (deleteResource() で作成)
QNetworkAccessManager::CustomOperation6カスタム操作 (sendCustomRequest() で作成)

QNetworkReply::operation()も参照

メンバ関数のドキュメント

[explicit] QNetworkAccessManager::QNetworkAccessManager(QObject *parent = nullptr)

Network Access API の中心となる QNetworkAccessManager オブジェクトを構築し、parent を親オブジェクトとして設定します。

[virtual noexcept] QNetworkAccessManager::~QNetworkAccessManager()

QNetworkAccessManager オブジェクトを破棄し、リソースを解放する。このクラスから返されるQNetworkReply オブジェクトには、このオブジェクトが親として設定されていることに注意してください。つまり、QObject::setParent() を呼び出さない場合は、このオブジェクトも一緒に削除されます。

void QNetworkAccessManager::addStrictTransportSecurityHosts(const QList<QHstsPolicy> &knownHosts)

HTTPストリクト・トランスポート・セキュリティ・ポリシーをHSTSキャッシュに追加します。knownHosts には、QHstsPolicy の情報を持つ既知のホストが含まれます。

注意: 期限切れのポリシーが存在する場合、既知のホストはキャッシュから削除されます。

: HTTP応答を処理する間、QNetworkAccessManager 、HSTSキャッシュを更新し、終了するポリシーを削除または更新したり、新しいknownHosts を導入したりすることもできる。したがって、現在の実装はサーバー駆動型であり、クライアントコードは、QNetworkAccessManager 、以前に既知または発見されたポリシーを提供できるが、この情報は、"Strict-Transport-Security "応答ヘッダーによって上書きされる可能性がある。

addStrictTransportSecurityHosts()、enableStrictTransportSecurityStore()、QHstsPolicyも参照のこと

[signal] void QNetworkAccessManager::authenticationRequired(QNetworkReply *reply, QAuthenticator *authenticator)

このシグナルは、最終サーバーが要求されたコンテンツを配信する前に 認証を要求するたびに発行される。このシグナルに接続されたスロットは、authenticator オブジェクトにコンテンツの認証情報(これはreply オブジェクトを調べることで決定できます)を格納しなければなりません。

QNetworkAccessManager は認証情報を内部的にキャッシュし、サーバーが再度認証を要求した場合に authenticationRequired() シグナルを出さずに同じ値を送信します。認証情報が拒否された場合は、このシグナルが再度送出されます。

注意: リクエストが認証情報を送信しないようにするには、authenticator オブジェクトで setUser() や setPassword() をコールしてはいけません。これにより、finished() シグナルが、QNetworkReply エラーAuthenticationRequiredError とともに発行される。

注意: QueuedConnectionを使用してこのシグナルに接続することはできません。 シグナルが返ったときに認証子に新しい情報が入力されていないと、接続に失敗するからです。

proxyAuthenticationRequired()、QAuthenticator::setUser()、QAuthenticator::setPassword()も参照のこと

bool QNetworkAccessManager::autoDeleteReplies() const

QNetworkReplies を自動的に削除するようにQNetworkAccessManager が設定されている場合は true を、そうでない場合は false を返します。

setAutoDeleteReplies およびQNetworkRequest::AutoDeleteReplyOnFinishAttributeも参照してください

QAbstractNetworkCache *QNetworkAccessManager::cache() const

ネットワークから取得したデータを格納するために使用されるキャッシュを返します。

setCache()も参照

void QNetworkAccessManager::clearAccessCache()

認証データとネットワーク接続の内部キャッシュをフラッシュする。

この関数は、自動テストを行う際に便利である。

clearConnectionCache()も参照

void QNetworkAccessManager::clearConnectionCache()

ネットワーク接続の内部キャッシュをフラッシュする。clearAccessCache() とは対照的に、認証データは保持される。

clearAccessCache()も参照

void QNetworkAccessManager::connectToHost(const QString &hostName, quint16 port = 80)

ポートporthostName に指定されたホストへの接続を開始する。この関数は、HTTPリクエストが行われる前にホストとのTCPハンドシェイクを完了させ、ネットワークの待ち時間を短縮するのに便利です。

注意: この関数にはエラーを報告する機能はありません。

connectToHostEncrypted()、get()、post()、put()、deleteResource()も参照の こと。

void QNetworkAccessManager::connectToHostEncrypted(const QString &hostName, quint16 port = 443, const QSslConfiguration &sslConfiguration = QSslConfiguration::defaultConfiguration())

sslConfiguration を使用して、ポートporthostName で指定されたホストへの接続を開始する。この関数は、HTTPSリクエストが行われる前にホストとのTCPとSSLのハンドシェイクを完了させ、ネットワーク遅延を少なくするのに便利です。

注意: HTTP/2接続の事前接続は、QSslConfiguration::ALPNProtocolHTTP2 が許可されたプロトコルのリストに含まれた状態で、sslConfiguration で setAllowedNextProtocols() を呼び出すことで行うことができます。HTTP/2を使用する場合、ホストごとに1つの接続で十分です。つまり、ホストごとにこのメソッドを複数回呼び出しても、ネットワークトランザクションは速くなりません。

注意: この関数にはエラーを報告する機能はありません。

connectToHost(),get(),post(),put(),deleteResource()も参照

void QNetworkAccessManager::connectToHostEncrypted(const QString &hostName, quint16 port, const QSslConfiguration &sslConfiguration, const QString &peerName)

これはオーバーロードされた関数である。

証明書の検証に使用されるhostNameをpeerName に設定し、sslConfiguration を使用して、port のポートでhostName で指定されたホストへの接続を開始します。この関数は HTTPS リクエストが行われる前にホストとの TCP と SSL のハンドシェイクを完了させ、ネットワークの待ち時間を短くするのに便利です。

注意: HTTP/2 接続の事前接続は、許可されるプロトコルのリストにQSslConfiguration::ALPNProtocolHTTP2 が含まれているsslConfiguration で setAllowedNextProtocols() を呼び出すことで行うことができます。HTTP/2を使用する場合、ホストごとに1つの接続で十分です。つまり、ホストごとにこのメソッドを複数回呼び出しても、ネットワークトランザクションは速くなりません。

注意: この関数にはエラーを報告する機能はありません。

connectToHost(),get(),post(),put(),deleteResource()も参照

QNetworkCookieJar *QNetworkAccessManager::cookieJar() const

ネットワークから取得したクッキーと送信しようとしているクッキーを保存するために使用されるQNetworkCookieJar を返します。

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

[virtual protected] QNetworkReply *QNetworkAccessManager::createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &originalReq, QIODevice *outgoingData = nullptr)

操作op とリクエストoriginalReq を処理するための新しいQNetworkReply オブジェクトを返す。デバイスoutgoingData は、Get リクエストと Head リクエストでは常に 0 ですが、これらの操作でpost() とput() に渡される値です(QByteArray バリアントはQBuffer オブジェクトを渡します)。

デフォルトの実装では、setCookieJar()で設定されたクッキー・ジャーでQNetworkCookieJar::cookiesForUrl()を呼び出し、リモート・サーバーに送られるクッキーを取得します。

返されるオブジェクトはオープン状態でなければなりません。

QNetworkReply *QNetworkAccessManager::deleteResource(const QNetworkRequest &request)

request のURLで識別されるリソースを削除するリクエストを送信する。

注意: この機能は現在 HTTP でのみ利用可能で、HTTP DELETE リクエストを実行する。

get()、post()、put()、sendCustomRequest()も参照のこと

void QNetworkAccessManager::enableStrictTransportSecurityStore(bool enabled, const QString &storeDir = QString())

enabledtrue の場合、内部HSTSキャッシュは、HSTSポリシーの読み書きに永続ストアを使用します。storeDir は、このストアがどこに配置されるかを定義します。デフォルトの場所はQStandardPaths::CacheLocation で定義されています。書き込み可能なQStandartPaths::CacheLocationがなく、storeDir が空文字列の場合、ストアはプログラムの作業ディレクトリに配置されます。

注意: 永続ストアが有効化される時点で、HSTSキャッシュにすでにHSTSポリシーが含まれている場合、これらのポリシーはストアに保持されます。キャッシュとストアの両方に同じ既知のホストが含まれている場合、キャッシュのポリシーの方がより最新であるとみなされます(したがって、ストアの以前の値が上書きされます)。この動作が望ましくない場合は、Strict Transport Securityを有効にする前にHSTSストアを有効にしてください。デフォルトでは、HSTSポリシーの永続ストアは無効になっています。

isStrictTransportSecurityStoreEnabled()、setStrictTransportSecurityEnabled()、QStandardPaths::standardLocations()も参照

[signal] void QNetworkAccessManager::encrypted(QNetworkReply *reply)

このシグナルは、SSL/TLSセッションが最初のハンドシェイクに成功したときに発せられる。この時点では、ユーザーデータは送信されていない。このシグナルは、例えばウェブサイトの証明書が変更されたときにユーザーに通知するなど、証明書チェーンの追加チェックを実行するために使うことができる。reply パラメータは、どのネットワーク・リプライが責任を負うかを指定する。もしリプライが期待された条件に一致しない場合は、このシグナルに接続されたスロットからQNetworkReply::abort() を呼び出すことでリプライを中止する必要がある。使用中のSSLコンフィギュレーションは、QNetworkReply::sslConfiguration() メソッドを使って検査することができる。

内部的には、QNetworkAccessManager はリクエストを並行して処理するために、サーバーへの複数のコネクションをオープンすることがある。これらの接続は再利用される可能性があり、encrypted() シグナルは発行されません。つまり、このシグナルを受け取ることが保証されるのは、QNetworkAccessManager の寿命の中で、サイトへの最初の接続だけということになる。

QSslSocket::encrypted() およびQNetworkReply::encrypted()も参照のこと

[signal] void QNetworkAccessManager::finished(QNetworkReply *reply)

このシグナルは、保留中のネットワーク・リプライが終了するたびに発行される。reply パラメータには、終了したリプライへのポインタが格納される。このシグナルはQNetworkReply::finished() シグナルと同時に発行される。

オブジェクトのステータスについては、QNetworkReply::finished() を参照してください。

注意: このシグナルに接続されているスロットのreply オブジェクトを削除しないでください。deleteLater() を使用してください。

QNetworkReply::finished() およびQNetworkReply::error()も参照

QNetworkReply *QNetworkAccessManager::get(const QNetworkRequest &request)

ターゲットrequest のコンテンツを取得するリクエストを投稿し、新しいデータが到着するたびにreadyRead() シグナルを発する、読み込み用にオープンされた新しいQNetworkReply オブジェクトを返す。

コンテンツと関連するヘッダがダウンロードされる。

post()、put()、deleteResource()、sendCustomRequest()も参照の こと。

[since 6.7] QNetworkReply *QNetworkAccessManager::get(const QNetworkRequest &request, QIODevice *data)

これはオーバーロードされた関数である。

注意 : メッセージボディを持つ GET リクエストはキャッシュされません。

注意 : リクエストがリダイレクトされた場合、ステータスコードが 307 または 308 の場合のみ、メッセージボディが保持されます。

この関数は Qt 6.7 で導入されました。

[since 6.7] QNetworkReply *QNetworkAccessManager::get(const QNetworkRequest &request, const QByteArray &data)

これはオーバーロードされた関数である。

注意 : メッセージボディを持つ GET リクエストはキャッシュされません。

注意 : リクエストがリダイレクトされた場合、ステータスコードが 307 または 308 の場合のみ、メッセージボディが保持されます。

この関数は Qt 6.7 で導入されました。

request のネットワークヘッダを取得するリクエストをポストし、そのようなヘッダを含む新しいQNetworkReply オブジェクトを返す。

この関数は、HTTPリクエストの関連付け(HEAD)にちなんで命名されています。

bool QNetworkAccessManager::isStrictTransportSecurityEnabled() const

HTTP Strict Transport Security (HSTS)が有効な場合に真を返す。デフォルトでは HSTS は無効になっています。

setStrictTransportSecurityEnabled()も参照

bool QNetworkAccessManager::isStrictTransportSecurityStoreEnabled() const

HSTSキャッシュがHSTSポリシーのロードと保存に永続ストアを使用する場合、trueを返します。

enableStrictTransportSecurityStore()も参照

QNetworkReply *QNetworkAccessManager::post(const QNetworkRequest &request, QIODevice *data)

request で指定された宛先に HTTP POST リクエストを送り、サーバーから送られた応答を含む、読み込み用にオープンされた新しいQNetworkReply オブジェクトを返す。data の内容がサーバにアップロードされる。

data は読み取り用にオープンされていなければならず、このリプライに対して () シグナルが発せられるまで有効でなければならない。finished

注意: HTTPおよびHTTPS以外のプロトコルでのPOSTリクエストの送信は未定義であり、おそらく失敗する。

get()、put()、deleteResource()、sendCustomRequest()も参照のこと

QNetworkReply *QNetworkAccessManager::post(const QNetworkRequest &request, QHttpMultiPart *multiPart)

これはオーバーロードされた関数である。

request で指定された宛先にmultiPart メッセージのコンテンツを送信します。

これは、MIME マルチパート・メッセージを HTTP で送信する場合に使用できます。

QHttpMultiPartQHttpPart 、およびput()も参照してください

QNetworkReply *QNetworkAccessManager::post(const QNetworkRequest &request, const QByteArray &data)

これはオーバーロードされた関数である。

request で指定された宛先に、data バイト配列の内容を送信します。

[since 6.8] QNetworkReply *QNetworkAccessManager::post(const QNetworkRequest &request, std::nullptr_t nptr)

これはオーバーロードされた関数である。

request で指定された POST リクエストをボディなしで送信し、新しいQNetworkReply オブジェクトを返します。

この関数は Qt 6.8 で導入されました。

[signal] void QNetworkAccessManager::preSharedKeyAuthenticationRequired(QNetworkReply *reply, QSslPreSharedKeyAuthenticator *authenticator)

このシグナルは、SSL/TLSハンドシェイクでPSK暗号スイートがネゴシエートされ、PSK認証が要求された場合に発行される。reply オブジェクトは、そのような暗号スイートをネゴシエートしているQNetworkReply である。

PSK を使う場合、SSL ハンドシェイクを継続するために、クライアントはサーバーに有効な ID と有効な事前共有鍵を送らなければならない。アプリケーションはこのシグナルに接続されたスロットで、渡されたauthenticator オブジェクトを必要に応じて埋めることで、この情報を提供することができます。

注意: このシグナルを無視したり、必要な認証情報を提供しなかったりすると、ハンドシェイクが失敗し、接続が中断されます。

注意 :authenticator オブジェクトはリプライが所有するので、アプリケーションが削除してはならない。

QSslPreSharedKeyAuthenticatorも参照のこと

QNetworkProxy QNetworkAccessManager::proxy() const

このQNetworkAccessManager オブジェクトを使用して送られたリクエストが使用するQNetworkProxy を返します。プロキシのデフォルト値はQNetworkProxy::DefaultProxy です。

setProxy()、setProxyFactory() およびproxyAuthenticationRequired()も参照 ください。

[signal] void QNetworkAccessManager::proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator)

このシグナルは、プロキシが認証を要求し、QNetworkAccessManager 、 キャッシュされた有効な信用証明書が見つからないときに発行される。このシグナルに接続されたスロットは、authenticator オブジェクトにプロキシproxy のための信用証明書を記入しなければなりません。

QNetworkAccessManager はその信用証明書を内部的にキャッシュする。次にプロキシが認証を要求するとき、 は、proxyAuthenticationRequiredシグナルを再度発することなく、同じ信用証明書を自動的に送る。QNetworkAccessManager

プロキシが信用証明書を拒否した場合、QNetworkAccessManager は再びシグナルを発する。

proxy()、setProxy()、authenticationRequired()も参照

QNetworkProxyFactory *QNetworkAccessManager::proxyFactory() const

リクエストに使用するプロキシを決定するためにこのQNetworkAccessManager オブジェクトが使用しているプロキシファクトリを返します。

この関数が返すポインタはQNetworkAccessManager で管理されており、いつでも削除できることに注意。

setProxyFactory() およびproxy()も参照

QNetworkReply *QNetworkAccessManager::put(const QNetworkRequest &request, QIODevice *data)

data の内容を宛先request にアップロードし、返信用にオープンされる新しいQNetworkReply オブジェクトを返す。

data は、この関数が呼び出されたときに読み取り用にオープンされていなければならず、この返信に対して () シグナルが発せられるまで有効でなければならない。finished

返されたオブジェクトから何かが読めるようになるかどうかは、プロトコルに依存する。HTTPの場合、サーバーはアップロードが成功した(または失敗した)ことを示す小さなHTMLページを送るかもしれない。他のプロトコルでは、おそらく返信にコンテンツが含まれるでしょう。

注意: HTTPの場合、このリクエストはPUTリクエストを送信しますが、ほとんどのサーバーはこれを許可していません。HTMLフォームによるファイルアップロードを含むフォームアップロードの仕組みは、POSTメカニズムを使用する。

get()、post()、deleteResource()、sendCustomRequest()も参照のこと

QNetworkReply *QNetworkAccessManager::put(const QNetworkRequest &request, QHttpMultiPart *multiPart)

これはオーバーロードされた関数である。

request で指定された宛先にmultiPart メッセージのコンテンツを送信します。

これは、MIME マルチパート・メッセージを HTTP で送信する場合に使用できます。

QHttpMultiPartQHttpPart 、およびpost()も参照してください

QNetworkReply *QNetworkAccessManager::put(const QNetworkRequest &request, const QByteArray &data)

これはオーバーロードされた関数である。

request で指定された宛先に、data バイト配列の内容を送信します。

[since 6.8] QNetworkReply *QNetworkAccessManager::put(const QNetworkRequest &request, std::nullptr_t nptr)

これはオーバーロードされた関数である。

request で指定された PUT リクエストをボディなしで送信し、新しいQNetworkReply オブジェクトを返します。

この関数は Qt 6.8 で導入されました。

QNetworkRequest::RedirectPolicy QNetworkAccessManager::redirectPolicy() const

新しいリクエストを作るときに使われるリダイレクトポリシーを返します。

setRedirectPolicy() およびQNetworkRequest::RedirectPolicyも参照ください

QNetworkReply *QNetworkAccessManager::sendCustomRequest(const QNetworkRequest &request, const QByteArray &verb, QIODevice *data = nullptr)

request のURLで識別されるサーバにカスタム・リクエストを送信する。

HTTP仕様に従って有効なverb をサーバに送るのはユーザの責任である。

このメソッドは、get()やpost()などで提供される一般的な動詞以外の動詞、例えばHTTP OPTIONSコマンドを送信する手段を提供します。

data が空でない場合、data デバイスの内容がサーバーにアップロードされます。この場合、データは読み取り用にオープンされていなければならず、この応答に対してfinished() シグナルが発せられるまで有効でなければなりません。

注: この機能は現在HTTP(S)でのみ利用可能である。

get()、post()、put()、deleteResource()も参照のこと

QNetworkReply *QNetworkAccessManager::sendCustomRequest(const QNetworkRequest &request, const QByteArray &verb, QHttpMultiPart *multiPart)

これはオーバーロードされた関数である。

request のURLで特定されるサーバーにカスタムリクエストを送る。

request で指定された宛先にmultiPart メッセージのコンテンツを送信します。

これは、カスタム動詞用の MIME マルチパートメッセージの送信に使用できます。

QHttpMultiPartQHttpPart 、およびput()も参照してください

QNetworkReply *QNetworkAccessManager::sendCustomRequest(const QNetworkRequest &request, const QByteArray &verb, const QByteArray &data)

これはオーバーロードされた関数である。

request で指定された宛先に、data バイト配列の内容を送信します。

void QNetworkAccessManager::setAutoDeleteReplies(bool shouldAutoDelete)

QNetworkReplies の自動削除を有効または無効にする。

shouldAutoDelete をtrueに設定することは、QNetworkRequest::AutoDeleteReplyOnFinishAttribute 属性がQNetworkRequest ですでに明示的に設定されていない限り、QNetworkAccessManager のこのインスタンスに今後渡されるすべてのQNetworkRequests で、 属性をtrueに設定することと同じです。

autoDeleteReplies およびQNetworkRequest::AutoDeleteReplyOnFinishAttributeも参照してください

void QNetworkAccessManager::setCache(QAbstractNetworkCache *cache)

マネージャのネットワークキャッシュを指定されたcache に設定します。キャッシュはマネージャによってディスパッチされるすべてのリクエストに使用されます。

クッキーを永続ストレージに保存するなどの追加機能を実装したクラスにネットワークキャッシュオブジェクトを設定するには、この関数を使用します。

注意: QNetworkAccessManagercache オブジェクトの所有権を取ります。

QNetworkAccessManager デフォルトでは、キャッシュは設定されていません。Qt はシンプルなディスクキャッシュ を提供します。QNetworkDiskCache

cache() およびQNetworkRequest::CacheLoadControlも参照してください

void QNetworkAccessManager::setCookieJar(QNetworkCookieJar *cookieJar)

マネージャのクッキージャーを指定されたcookieJar に設定します。クッキー・ジャーは、マネージャによってディスパッチされるすべてのリクエストで使用されます。

クッキーを永続的なストレージに保存するなどの追加機能を実装するクラスにクッキー・ジャー・オブジェクトを設定するには、この関数を使用します。

注意: QNetworkAccessManagercookieJar オブジェクトの所有権を取ります。

cookieJar がこのQNetworkAccessManager と同じスレッドにある場合、このオブジェクトが削除されたときにクッキー・ジャーも削除されるように、cookieJar の親を設定します。異なるQNetworkAccessManager オブジェクト間でクッキー・ジャーを共有したい場合は、この関数を呼び出した後、クッキー・ジャーの親を 0 に設定するとよいでしょう。

QNetworkAccessManager デフォルトでは、それ自身のクッキー・ポリシーは実装されていません: サーバから送られたすべてのクッキーを、それらが適切に形成され、最小限のセキュリ ティ要件(クッキーのドメインがリクエストのものと一致し、クッキーのパスがリクエストのものと一致する)を満たす限り、受け入れます。独自のセキュリティ・ポリシーを実装するには、 () と () 仮想関数をオーバーライドしてください。これらの関数は、 が新しいクッキーを検出したときに呼び出されます。QNetworkCookieJar::cookiesForUrl QNetworkCookieJar::setCookiesFromUrl QNetworkAccessManager

cookieJar()、QNetworkCookieJar::cookiesForUrl()、QNetworkCookieJar::setCookiesFromUrl()も参照してください

void QNetworkAccessManager::setProxy(const QNetworkProxy &proxy)

今後のリクエストで使用するプロキシをproxy に設定する。これは、すでに送られたリクエストには影響しない。プロキシが認証を要求した場合、proxyAuthenticationRequired() シグナルが発行される。

この関数で設定されたプロキシは、QNetworkAccessManager が発行するすべてのリクエストに使用される。場合によっては、送信されるリクエストのタイプや宛先ホストに応じて、 異なるプロキシを選択する必要があるかもしれません。そのような場合は、setProxyFactory() の使用を検討すべきである。

proxy() およびproxyAuthenticationRequired()も参照の こと。

void QNetworkAccessManager::setProxyFactory(QNetworkProxyFactory *factory)

このクラスのプロキシファクトリをfactory に設定します。プロキシファクトリは、すべてのリクエストに同じプロキシ値を使おうとするのではなく、 与えられたリクエストに使われるプロキシのより具体的なリストを決定するために使われます。

QNetworkAccessManager によって送られるすべてのクエリはタイプQNetworkProxyQuery::UrlRequest を持つ。

例えば、プロキシファクトリは以下のルールを適用できる:

  • ターゲットアドレスがローカルネットワークにある場合(例えば、ホスト名にドットが 含まれていないか、組織の範囲内のIPアドレスの場合)、以下を返す。QNetworkProxy::NoProxy
  • リクエストがFTPの場合は、FTPプロキシを返します。
  • リクエストがHTTPまたはHTTPSの場合、HTTPプロキシを返す。
  • そうでなければ、SOCKSv5プロキシサーバーを返す。

オブジェクトfactory の有効期限はQNetworkAccessManager が管理する。必要なときにオブジェクトは削除される。

注意: setProxy() で特定のプロキシが設定されている場合、ファクトリは使用されない。

proxyFactory()、setProxy()、QNetworkProxyQueryも参照

void QNetworkAccessManager::setRedirectPolicy(QNetworkRequest::RedirectPolicy policy)

マネージャのリダイレクトポリシーを指定されたpolicy に設定します。このポリシーは、マネージャによって作成された後続のすべてのリクエストに影響します。

マネージャーレベルで HTTP リダイレクトを有効または無効にするには、この関数を使用します。

注意: リクエストを作成する場合、QNetworkRequest::RedirectAttributePolicy の優先順位が最も高く、次にマネージャーのポリシーの優先順位が高くなります。

デフォルト値はQNetworkRequest::NoLessSafeRedirectPolicy です。手動でのリダイレクト処理に依存しているクライアントは、コード内でこのポリシーを明示的に設定することが推奨されます。

redirectPolicy() およびQNetworkRequest::RedirectPolicyも参照して ください。

void QNetworkAccessManager::setStrictTransportSecurityEnabled(bool enabled)

enabledtrue の場合、QNetworkAccessManager はHTTP Strict Transport Securityポリシー(HSTS, RFC6797)に従う。リクエストを処理するとき、QNetworkAccessManager は自動的に "http "スキームを "https "に置き換え、HSTSホスト用のセキュアなトランスポートを使用する。明示的に設定されている場合、ポート80はポート443に置き換えられる。

HSTSが有効な場合、HSTSヘッダを含み、セキュアなトランスポートで受信された各HTTPレスポンスに対して、QNetworkAccessManager 、有効なポリシーを持つホストを記憶するか、期限切れまたは無効なHSTSポリシーを持つホストを削除して、HSTSキャッシュを更新する。

isStrictTransportSecurityEnabled()も参照のこと

void QNetworkAccessManager::setTransferTimeout(int timeout)

転送タイムアウトとしてtimeout をミリ秒単位で設定する。

setTransferTimeout(std::chrono::milliseconds),transferTimeout(),transferTimeoutAsDuration()も参照

[since 6.7] void QNetworkAccessManager::setTransferTimeout(std::chrono::milliseconds duration = QNetworkRequest::DefaultTransferTimeout)

データが交換されなかった場合に転送を中止するためのタイムアウトduration を設定する。

転送は、タイムアウトが切れる前にバイトが転送されなければ中止される。ゼロはタイマーが設定されないことを意味する。引数が与えられない場合、タイムアウトはQNetworkRequest::DefaultTransferTimeout である。 この関数が呼ばれない場合、タイムアウトは無効になり、値はゼロになる。実行されるリクエストに設定された、リクエスト固有のゼロ以外のタイムアウ トは、この値を上書きする。つまり、QNetworkAccessManager でタイムアウトが有効になっている場合、タイムアウトのないリクエストを実行するためには、タイムアウトを無効にする必要があります。

この関数は Qt 6.7 で導入されました。

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

[signal] void QNetworkAccessManager::sslErrors(QNetworkReply *reply, const QList<QSslError> &errors)

このシグナルは、SSL/TLSセッションがセットアップ中に証明書検証エラーを含むエラーに遭遇した場合に発行される。errors パラメーターにはエラーのリストが含まれ、reply はこれらのエラーに遭遇したQNetworkReply である。

エラーが致命的ではなく、接続を続行することを示すために、このシグナルに接続されたスロットからQNetworkReply::ignoreSslErrors() 関数が呼ばれなければなりません。この関数が呼ばれない場合、SSLセッションは(URLを含む)データが交換される前に破棄されます。

このシグナルは、セキュリティが侵害されている可能性があることを示すエラーメッセージをユーザーに表示し、SSL設定を表示するために使用することができます(取得するにはsslConfiguration()を参照してください)。リモート証明書を分析した後、ユーザーが続行することを決定した場合、スロットはignoreSslErrors()を呼び出す必要がある。

QSslSocket::sslErrors()、QNetworkReply::sslErrors()、QNetworkReply::sslConfiguration()、QNetworkReply::ignoreSslErrors()も参照のこと

QList<QHstsPolicy> QNetworkAccessManager::strictTransportSecurityHosts() const

HTTP Strict Transport Security ポリシーの一覧を返す。HSTSキャッシュが "Strict-Transport-Security "レスポンスヘッダから更新された場合、このリストはaddStrictTransportSecurityHosts()によって最初に設定されたものとは異なる可能性がある。

addStrictTransportSecurityHosts() およびQHstsPolicyも参照のこと

[virtual] QStringList QNetworkAccessManager::supportedSchemes() const

アクセスマネージャがサポートするすべての URL スキームをリストします。

このメソッドを再実装して、QNetworkAccessManager のサブクラスで独自のサポートするスキームを提供します。例えば、サブクラスが新しいプロトコルのサポートを提供する場合に必要です。

int QNetworkAccessManager::transferTimeout() const

転送に使用されるタイムアウトをミリ秒単位で返す。

setTransferTimeout()も参照

[since 6.7] std::chrono::milliseconds QNetworkAccessManager::transferTimeoutAsDuration() const

データが交換されなかった場合に転送が中止されるタイムアウト時間を返します。

デフォルトの継続時間はゼロで、これはタイムアウトが使用されないことを意味します。

この関数は Qt 6.7 で導入されました。

setTransferTimeout(std::chrono::milliseconds)も参照してください

© 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.