問題タブ [qnetworkrequest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - QNetworkAccessManager で、IP が DNS 解決済み IP のリストから選択された場合は?
QnetworkAccessManager を使用して HTTP 要求を作成しています。IP アドレスまたは IP アドレスのリストを取得するために FQDN がいつ解決されるか (DNS 解決) を知りたいです。
QNetworkAccessManager は、解決された IP のリストから IP を選択してリクエストを送信する方法を教えてください。
QNetworkAccessManager は DNS 解決のキャッシュを保持しますか?
qt - QNetworkReply から読み取る ファイルに書き込む
a を実行して、割り当てられたQNetworkRequest
を取得したとしますQNetworkReply
。大きなファイル (1 GB など) の場合、4k バイト配列バッファーを作成し、4k x 4k のデータをその配列に読み取り、同時に開いているファイルストリームに書き込むにはどうすればよいですか? たとえば、同等の C# コードは次のようになります (私は Qt ではなく C# に精通しています)。
- - 編集
実際に私がやろうとしているのは、アプリケーションを実行するたびにダウンロードを再開する機能です。ダウンロードを再開しようとするたびに、range
ヘッダーを設定しQNetworkRequest
て残りのデータを取得するだけなので、データを一度にではなく段階的に書き込む必要があります。
qt - QNetworkAccessManager - 「PATCH」リクエストの送信方法
Firebase アプリケーションに「PATCH」リクエストを送信しようとしています。私が読んだ限りでは、QNetworkManager は「Patch」リクエストをサポートしていません。
「PATCH」リクエストを送信するにはどうすればよいですか?
c++ - c++ QNetworkRequest を使用して HTTPS サイト コンテンツを取得する
VS2010 c++ 環境で Qt フレームワーク (QNetworkRequest) を使用して、サイトのコンテンツ (json 文字列) を取得しようとしています。HTTP サイトからのデータの読み取りに問題はありませんが、HTTPS サイトのコンテンツを読み取ろうとするとうまくいきません。一方、ブラウザはサイトのコンテンツを「見る」ことができます。証明書の問題だと思いますが、完全にはわかりません。firefox からは ca.pem (エクスポートしたもの) にしかアクセスできません。空のままにしないように、cert.pem と key.pem にダミーの pem ファイルを使用しました。残念ながら、これらのファイルを別の方法で取得することはできません。
「秘密鍵は公開鍵を認証しません。エラー:140A80B1:SSL ルーチン:SSL_CTX_check_private_key:証明書が割り当てられていません」という説明のエラー 99 コードが表示されます。したがって、ダミーの鍵証明書のエラーであるはずです。
しかし、ブラウザーがコンテンツを「見る」ことができ、コードを介して私ができないのはどうしてでしょうか? 回避策を見つけることは可能ですか?
私のコードは次のとおりです。
qt - QNetworkAccessManager / QNetworkReply を使用して readyRead() を使用してダウンロードすると、RAM が消費されます
次のセットアップとシナリオがあります。
- 実行中の QT/QML アプリケーション。20MB のファイルを
/tmp/IMAGE
(QNetworkManager()
、QNetworkReply()
、を使用してreadyRead()
)にダウンロードするようにトリガーできます。 /tmp
RAM ディスクです - 40 MB 以上の空き容量があります (QT/QML アプリケーションの実行中)- QT/QML アプリケーションの実行中に
wget
20MB のファイルを簡単に転送できます/tmp/IMAGE
ただし、QT/QML アプリケーションを介してファイルをダウンロードしようとすると (および-signal を使用QNetworkManager()
すると、qt/qml アプリケーションは、ファイルの半分が実際にダウンロードされる前であってもメモリ不足キラーによって強制終了されます (およびのサイズ)。QNetworkReply()
readyRead()
downloadProgress()
/tmp/IMAGE
私が理解している限り、readyRead()
チャンクの部分的なダウンロード、ディスクへの書き込み、使用済み RAM のクリア、次のチャンクのダウンロードと書き込みのために特に設計されています。
ただし、その方法は、たとえば使用するよりも多くの RAM を消費するようですwget
-10MB のファイルをダウンロードした後、Qt/QML アプリケーションには説明できない巨大なメモリフットプリントがあります。
私が基本的にやっていることは、次のreadyRead()
名前のスロットに接続することpartialDownloadFinished()
だけです:file->write(reply->readAll());
チャンクサイズが大きくなる可能性があるかどうかも確認しbytesAvailable()
ましたが、そうではないようです。
私の次の推測では、データは (RAM) ディスクに書き込まれるよりも速くダウンロードされますが、そうではないようです。
だから私は立ち往生しています。これについて手がかりやヒントを持っている人はいますか?
どうもありがとう!
qt - QNetworkRequest メソッド (get または post) とは何かを判断する方法は?
QWebView を使用して Web サイトを閲覧し、QWevView.Page().networkAccessManager().finished
シグナルを使用してリクエストを監視する場合、リクエスト メソッド (Post または Get) を特定するにはどうすればよいですか?
これは私のコードです:
qt - QNetworkAccessManager - マルチパート「PATCH」リクエストの送信方法
この質問は QNetworkAccessManager - How to send “PATCH” request を補足します。
QNetworkAccessManager にはメソッドがありません
私は Qt 4.8-bb10 で立ち往生しています。どのように進めればよいですか?