1. ホーム
  2. android

アンドロイドでHTTP認証を行うには?

2023-10-29 14:34:07

質問

私はクラスorg.apache.http.authをチェックしています。 誰かが持っている場合は、任意のより多くの参照または例?

どのように解決するのですか?

その特定のパッケージには初めて出会いましたが、クライアントサイドのHTTP認証用と書いてあり、Androidでは java.net のような API を使って Android でできました。

Authenticator.setDefault(new Authenticator(){
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication("myuser","mypass".toCharArray());
    }});
HttpURLConnection c = (HttpURLConnection) new URL(url).openConnection();
c.setUseCaches(false);
c.connect();

明らかに、あなたのgetPasswordAuthentication()は定数を返すよりもっと賢いことをする必要があります。

もしあなたがボディを持つリクエストを行おうとしているのなら (例えば POST ) を認証付きで使用する場合は、注意してください。 Android の問題 4326 . プラットフォームへの修正提案をリンクしましたが、ベーシック認証のみを行いたい場合は、簡単な回避策があります:Authenticator を使用せず、代わりにこれを実行します。

c.setRequestProperty("Authorization", "basic " +
        Base64.encode("myuser:mypass".getBytes(), Base64.NO_WRAP));