5

作成方法HTTP認証のAPIを使用Volleyライブラリバグリーライブラリを使用したアンドロイドのHttp認証

私はそれがランタイム例外&ヌルポインタexception..Pleaseが

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); 
+0

をあなたは[droidQuery](http://bit.ly/droidQueryを使用することができます。コードは次のようになりますあなたの要求クラスに

を使用すると、getHeadersメソッドをオーバーライドする必要があります。これを行うために

)を使用して、非同期の安静な要求を認証で実行します。ユーザ名を追加するための 'AjaxOptions' [documentation](http://phil-brown.github.io/droidQuery/doc/self/philbrown/droidQuery/AjaxOptions.html#username(java.lang.String))を見てください。要求に対するパスワード。 – Phil

答えて

4

)がお好みのボレーリクエストクラスを拡張し、(getHeadersを上書き提案を提供投げる....以下のコードを試してみました。そこ認証情報と地図を返します(headers.put(「認証」、「AUTHINFO ...」))

9

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

dXNlcjp1c2Vyは、ユーザーである
Authorization: Basic dXNlcjp1c2Vy 

:パスワード文字列はBase64形式で、「基本」という語は認証タイプを意味します。

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

@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; 
} 
+0

これは男です。 – omujeebr

関連する問題