5

Come rendere Autenticazione Http per API utilizzando Libreria Volley?Autenticazione Http in Android utilizzando la libreria volley

Ho provato il seguente codice .... getta Runtime Exception & Null Pointer exception..Please fornire suggerimenti

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

È possibile utilizzare [droidQuery] (http://bit.ly/droidQuery) per eseguire richieste restanti asincrone con autenticazione. Guarda la documentazione di AjaxOptions [http://phil-brown.github.io/droidQuery/doc/self/philbrown/droidQuery/AjaxOptions.html#username (java.lang.String)) per aggiungere un nome utente e password per una richiesta. – Phil

risposta

4

Estendere la classe richiesta raffica di vostra scelta e sovrascrivere getHeaders(). Restituisce una mappa con le informazioni di autenticazione lì (headers.put ('Autorizzazione', 'authinfo ...'))

9

base HTTP autorizzazione appare come il prossimo intestazione:

Authorization: Basic dXNlcjp1c2Vy 

dove dXNlcjp1c2Vy è l'utente : stringa password nel formato Base64, parola "Base" indica il tipo di autorizzazione.

Quindi è necessario impostare l'intestazione della richiesta denominata Autorizzazione.

Per fare questo è necessario eseguire l'override metodo getHeaders nella classe richiesta

Il codice sarà simile a questa:

@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

Questo funziona. – omujeebr