2015-12-16 14 views
10

Chiunque può aiutarmi a implementare l'autenticazione digest utilizzando Google Volley per le chiamate al servizio web (REST).come implementare l'autenticazione digest usando volley?

in pratica Volley utilizza l'autenticazione SHA1 (Basic Auth), ma esiste un modo per modificare con digest Auth (MD5).

+4

Hai visto questo http://www.java2s.com/Open-Source/Android_Free_Code/Framework/platform/com_gm_android_volleyHttpDigestStack_java.htm? – Carlos

+0

Grazie @Liberi per il collegamento ... non avevo ancora controllato ... lo controllo male :) – Naitik

risposta

2

Entrambe le autenticazioni HTTP utilizzano semplici intestazioni. Non ho provato questo da sola, ma suppongo tutto ciò che serve per implementare è quello di fornire un colpo di testa con il formato Digest-specifica nella richiesta personalizzato come questo:

public class MyRequest<T> extends Request<T> { 
... 
    @Override 
    public Map<String,String> getHeaders() throws AuthFailureError { 
     Map<String,String> headers = new HashMap<String,String>(); 
     headers.put("Authorization", "Digest " + getAuthorizationData()); 
     return headers; 
    } 
... 
} 

Spero che ti aiuto

2

La soluzione migliore per te è, infatti, utilizzare HttpDigestStack. Puoi trovare i documenti qui: http://www.java2s.com/Open-Source/Android_Free_Code/Framework/platform/com_gm_android_volleyHttpDigestStack_java.htm

Tutto ciò che devi fare è fornire una nuova istanza di HttpDigestStack come parametro aggiuntivo quando si crea un nuovo RequestQueue utilizzando Volley. Puoi seguire questo esempio:

Volley.newRequestQueue(context, new HttpDigestStack()); 
+0

A meno che non stia fraintendendo qualcosa ... Questa soluzione utilizza un metodo deprecato da BaseHttpStack (performRequest). La raccomandazione di Volley suggerisce invece di usare executeRequest. –