如何使用凌空实现摘要式身份验证?

时间:2015-12-16 06:11:41

标签: android android-volley digest-authentication

任何人都可以帮助我使用Google Volley进行Web服务调用(REST)实现摘要身份验证。

基本上Volley正在使用SHA1身份验证(Basic Auth),但是有没有办法用digest Auth(MD5)进行修改。

2 个答案:

答案 0 :(得分: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;
    }
...
}

我希望它会帮助你

答案 1 :(得分: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());