3

有効なユーザー名/パスワードを必要とするWebサービスを使用しています。PyQtから、QNetworkAccessManagerを使用してWebサービスにアクセスしています。

authenticationRequired (QNetworkReply*, QAuthenticator*)

(明らかに)認証が必要な場合に通知します。QAuthenticatorのユーザーとpsswdを入力すると、すべて正常に機能します。ただし、ユーザーが無効な場合にループを解除する方法がわかりません

authenticationRequiredのドキュメントから:

「クレデンシャルを拒否した場合、このシグナルは再び発行されます。」

無効なクレデンシャルの場合、このシグナルは何度も何度も発行されます...応答のエラーコードを見ると0が示されています。このループはどのように中断または処理され、エラーで終了するのでしょうか。

4

4 に答える 4

2

ええ、それは奇妙です。私が以前に行ったことは、私がそれらの詳細ですでに認証されているかどうか、そして私が電話したかどうかを確認することですQNetworkReply.abort()

于 2009-08-06T15:33:17.413 に答える
1

試してみるのはどうですか:

QNetworkReply::abort()

また

QNetworkReply::close()

?

于 2009-08-06T15:38:27.933 に答える
0

を呼び出すQNetworkReply::abort()と、元の 401 エラーではなく、「Operation Aborted」というエラーでリクエストが失敗します。今すべき正しいことは、電話をかけQAuthenticator::setUser()たり、スロットQAuthenticator::setPassword()の中に入れたりしないことです。authenticationRequired()これによりQAuthenticatorPrivate::phaseasDoneが残り、リクエストは正しいエラー コードで正常に終了します。

この点に関して、Qt のドキュメントはかなり不明確です。

これは Qt 4.7 の動作ではないようで、Qt 4.8 のある時点で導入されました。

于 2014-12-11T18:37:01.677 に答える