2015-12-16 25 views
10

任何人都可以幫助我使用Google Volley進行Web服務調用(REST)的實現摘要認證。如何使用volley實現摘要認證?

基本上Volley正在使用SHA1身份驗證(基本身份驗證),但是有什麼方法可以使用摘要身份驗證(MD5)進行修改。

+4

你見過這個http://www.java2s.com/Open-Source/Android_Free_Code/Framework/platform/com_gm_android_volleyHttpDigestStack_java.htm? – Carlos

+0

謝謝@Liberi的鏈接...我還沒有檢查...檢查它:) – Naitik

回答

2

兩種HTTP認證都使用簡單的標頭實體。我還沒有嘗試過自己,但我認爲你需要實現就是在這樣的定製要求提供頭部與特定摘要格式:

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; 
    } 
... 
} 

我希望它會幫助你

2

對你來說最好的解決方案實際上是使用HttpDigestStack。你可以在這裏找到文檔:http://www.java2s.com/Open-Source/Android_Free_Code/Framework/platform/com_gm_android_volleyHttpDigestStack_java.htm

所有你需要做的就是當使用Volley創建一個新的RequestQueue時,提供一個新的HttpDigestStack實例作爲附加參數。你可以按照這個例子:

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

除非我誤解了一些東西....此解決方案使用從BaseHttpStack(performRequest)不推薦使用的方法。 Volley的建議建議使用executeRequest。 –