4

ftpサーバーが認証を必要とする場合、QNetworkAccessManagerはftpによって取得された欠落ファイルを処理しないようです。

状況は次のとおりです。ユーザー名とパスワードを必要とする同じftpサーバーから複数のファイルをダウンロードしています。いくつかのファイルを正常にダウンロードしてから、存在しないファイルのGETを送信します。そのリクエストは失敗を報告します。次に、有効なはずのファイルに対してGETリクエストを送信します。その要求は、終了した信号またはエラーを発行することはありません。

Qt 4.7.4

助けてください!これは私を狂わせています。どういうわけかftpバックエンドをリセットできれば、この問題は解決できるかもしれないと思います。

4

2 に答える 2

1

次のようにQNetworkReply信号を接続しています。finished()

QObject::connect(reply, SIGNAL(finished()), netty, SLOT(finished()));

代わりに、次のQNetworkAccessManagerような終了信号を試してください。

connect(&network, SIGNAL(finished(QNetworkReply *)), netty, SLOT(finished(QNetworkReply *)));

finished() スロットのプロトタイプを変更する必要があることに注意してください。

最後の方法は、次のような関数を呼び出すタイマーを設定することです。

void check(QNetworkReply *reply){
 if(reply != NULL){
   if(reply->isFinished())
     finished(reply);
   else
     reply->abort();
 }
}

そして、このバグに注意してください:

https://bugreports.qt-project.org/browse/QTBUG-3443

于 2012-07-21T12:26:25.247 に答える