2015-12-16 20 views
10

私は、Webサービスコール(REST)用にGoogle Volleyを使用してダイジェスト認証を実装するのに役立ちます。ボレーを使用してダイジェスト認証を実装する方法は?

基本的にVolleyはSHA1認証(Basic Auth)を使用していますが、ダイジェストAuth(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認証では、単純なヘッダーエンティティが使用されます。私は自分自身でこれを試していないが、私はあなたが実装する必要があるすべては、このようなカスタム要求でダイジェスト固有の形式でヘッダーを提供することであると仮定します。私はそれはあなたの

2

を助けいただければ幸いです

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

あなたにとって最良の解決策は、実際には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を使用することを提案しています。 –

関連する問題