1

任意のプロキシまたはHTTP認証の背後にあるURLにアクセスできるAndroidアプリをセットアップしようとしています。つまり、アプリはURLが認証を必要としているかどうかをすぐには認識せず、Androidブラウザーの場合と同じように、ユーザーに資格情報を要求することで認証要求に応答します。

私は最近、WebViewのユーザー認証を要求する方法、ブラウザーからの認証要求に応答する方法、ダイアログを表示する方法、およびユーザーを宛先ページに進める方法を考案しました。私はで同じことをしたいと思っていHttpClientます。

私が見ているように、基本的なプロセスは次のとおりです。

  1. を介してリクエストを実行しHttpClient.executeます。
    • 適切なヘッダーを持つ401または407でない場合は、「完了」コールバックをトリガーします。
    • さもないと...
  2. ユーザー名とパスワードを尋ねるダイアログをポップアップします。
  3. を介してHTTPクライアントでhttpクレデンシャルを設定しますHttpClient.getCredentialsProvider().setCredentials
  4. ユーザーが[キャンセル]をクリックするか、サーバーが諦めるまで、手順1に戻ります。その場合、最後に受信した応答で「失敗した」コールバックをトリガーします。

私は正しい方向に進んでいますか、それとも誰かがすでに同様の何かを実装していますか?私はこれについて車輪の再発明をするのは嫌だ。

4

2 に答える 2

0

apacheサイトで認証の例を試す必要があります

httpclient.getCredentialsProvider().setCredentials(
                    new AuthScope("localhost", 443),
                    new UsernamePasswordCredentials("username", "password"));

Javaファイルへの直接リンクはhttp://hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/apache/http/examples/client/ClientAuthentication.javaです。

于 2012-06-20T21:18:59.710 に答える
0

上記のリアクティブアプローチは機能しました。任意の401または407要求に応答することは、遭遇すると予想される各認証スキームをサポートする必要があるという警告とともに効果的であるUsernamePasswordCredentialsため、NTLMでは機能しません。

于 2012-07-27T19:27:54.200 に答える