問題タブ [qnetworkreply]

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.

0 投票する
1 に答える
2995 参照

qt - 単純な URL を取得するときの QNetworkReply エラー「接続が閉じられました」

シンプルなファイルダウンローダーを作ろうとしています。URL をダウンロードするためのコード セグメントは次のとおりです。「 http://stackoverflow.com 」のような単純な URL を取得しようとすると、このコードは正常に機能します。しかし、リダイレクト
する URL を指定すると、 「接続が閉じられました」というエラーがスローされます。

さらに、ネットワーク エラーを認識するために、次の信号スロットを接続しました。

以下は、networkReply のエラー シグナルが発せられた場合にエラーを出力するスロットです。


このエラーのため、networkReplyオブジェクトはヘッダーをまったく受け取りません。

私の必要性は、このメソッドで HTTP ステータス コードを読み取ることです。QNetworkReply::attribute(QNetworkRequest::HttpStatusCodeAttribute)

ヘッダーが取得できないため、HTTP ステータス コードを読み取ることができません。

誰が何が起こっていると言うことができますか?
前もって感謝します!:)

0 投票する
1 に答える
276 参照

c++ - Web サイトからファイルをダウンロードする

私の小さなプログラムについて助けを求めています。QNetwork クラスを使用して Web サイトからセットアップ (.exe) をダウンロードしたいと考えています。私はすでにそれについて多くの記事を検索して読んでいますが、うまくいきません。

ダウンロード.cpp:

ダウンロード.h:

OpenSSL 用の dll を追加しましたが、動作します。「.pro」ファイルに「network」も追加しました。しかし、プログラムを実行して別のクラスのプッシュ ボタンをクリックすると、initialiseDownload() は機能していますが、シグナルが非アクティブのようです。

前もって感謝します !

0 投票する
1 に答える
736 参照

c++ - QNetworkReply からダウンロードされたパーセンテージを取得する

以下を使用して、ファイルがダウンロードされているときに、QNetworkReply からダウンロードされたパーセンテージを取得しようとしています。

しかし、プログラムをテストすると、常に次のようになります。

進行状況: 100

これは2回出力され、100を下回ることはありません。ダウンロードの進行状況が変化するたびに信号を発信したいと思います。

どうすればこれを実現できますか? または、それが起こらないようにコードを間違えたのでしょうか?

編集: @dubsjw は、int を使用して丸めエラーが発生したことを指摘しました。大きな画像では時間の経過とともに 0 から 100 に増加しますが、小さな画像では、進行状況: 0 と進行状況: 100 しか得られず、その間には何もありません。0 から 100 までスムーズに増加するプログレス バーによって受信される信号を送信したいと思います。これを行うにはどうすればよいですか?

ファイルダウンローダー.h:

ファイルダウンローダー.cpp:

0 投票する
1 に答える
1252 参照

c++ - 同じURLを再度リクエストすると、Qt QNetworkReply readAllが空を返します

これは純粋なテスト目的であり、私の好奇心のためです。DataDownloader クラスを使用して、サーバーからデータのリストを取得します。http://tiny-file-urlhttp://big-file-urlなど、さまざまな URL で動作します。しかし、http://tiny-file-url と http://tiny-file-url という 2 つの同一の URL を渡し、http: //tiny-file-urlからデータが非常に小さい場合、2 番目の応答はfrom QNetworkAccessManager は空です。ただし、2 つのhttp://big-file-urlは機能しているようです。同じ URL から小さなデータを要求するときに、QNetworkAccessManager が何らかの魔法をかけるかどうか疑問に思っていますか? Qtドキュメントサイトで関連情報を取得できないようです。

これが私のDataDownloaderクラスです:

これを呼び出すコードDataDownloaderは次のとおりです。

0 投票する
2 に答える
1555 参照

qt - QNetworkAccessManager のシグナル終了のためにスロットが呼び出されませんでした

サーバーに投稿リクエストを送信したいのですが、次のようにします。

しかし、スロットserviceRequestFinished()はまったく呼び出されません! Wireshark を使用してリクエスト/レスポンスを追跡したところ、リクエスト (投稿) が送信され、サーバーがステータス200(ok) を含むレスポンスを返すことがわかりました。また、ret変数は を返しますtrue。つまり、信号とスロットの間の接続が正常に行われました。これがうまくいかない理由を知っている人はいますか?ありがとうございました!:)

編集

問題を引き起こすコード - 私の答えを見てください - はこれです:

0 投票する
0 に答える
1445 参照

qt - コードが 200 でない場合、QNetworkReply から本文を読み取るにはどうすればよいですか

の場合、返信は空の本文コンテンツを返しますreply->error() != QNetworkReply::NoErrorが、実際には応答にコンテンツがあります。

どうすれば読めますか?

0 投票する
1 に答える
390 参照

qt - QNetworkReply からカスタム QNetworkRequest オブジェクトを取得する

これが私が持っているコードです:

UserInfoRequest が別のクラスから派生する場所:

質問は、クラスQNetworkRequestに返されたオブジェクトを何らかの方法でキャストできますか? それが不可能な場合、前にリストしたコードからカスタム リクエスト オブジェクトを応答ハンドラ スロットに渡す最良の方法は何ですか。QNetworkReply::request()APIRequest