6

Volley ライブラリを使用して API のHTTP 認証を作成するには?

次のコードを試してみました....ランタイム例外とヌルポインター例外がスローされます..提案を提供してください

String url = "Site url";
String host = "hostName";
int port = 80;
String userName = "username";
String password = "Password";
DefaultHttpClient client = new DefaultHttpClient();
AuthScope authscope = new AuthScope(host, port);
Credentials credentials = new UsernamePasswordCredentials(userName, password);
client.getCredentialsProvider().setCredentials(authscope, credentials);
HttpClientStack stack = new HttpClientStack(client);
RequestQueue queue =  Volley.newRequestQueue(VolleyActivity.this, stack);
4

2 に答える 2

9

基本的な HTTP 認証は、次のヘッダーのようになります。

Authorization: Basic dXNlcjp1c2Vy

ここで、dXNlcjp1c2Vy はBase64形式の user:password 文字列です。「Basic」という単語は認証タイプを意味します。

そのため、Authorization という名前のリクエスト ヘッダーを設定する必要があります。

これを行うには、リクエスト クラスで getHeaders メソッドをオーバーライドする必要があります。

コードは次のようになります。

@Override
public Map<String, String> getHeaders() {
    Map<String, String> params = new HashMap<String, String>();
    params.put(
            "Authorization",
            String.format("Basic %s", Base64.encodeToString(
                    String.format("%s:%s", "username", "password").getBytes(), Base64.DEFAULT)));
    return params;
}
于 2014-10-10T14:33:39.857 に答える