android– 使用Volley请求发送身份验证信息

android– 使用Volley请求发送身份验证信息,第1张

概述在我的Android应用程序中,我必须调用一个看起来像这样的Web服务http://mywesite.com/demo/mob/getmenubycategory/1我正在使用截击发送请求但结果是VolleyError401.我已经重写了getParams()方法来添加标题,但它无法正常工作.这是我的代码.RequestQueuerequestQueue=vol

在我的Android应用程序中,我必须调用一个看起来像这样的Web服务

http://mywesite.com/demo/mob/getmenubycategory/1

我正在使用截击发送请求但结果是VolleyError 401.
我已经重写了getParams()方法来添加标题,但它无法正常工作.

这是我的代码.

RequestQueue requestQueue = volleySingleton.getRequestQueue();    requestQueue.add(new JsonObjectRequest(Request.Method.GET, url, new Response.Listener<JsONObject>() {        @OverrIDe        public voID onResponse(JsONObject response) {            Log.e(TAG, "onResponse = \n " + response.toString());        }    }, new Response.ErrorListener() {        @OverrIDe        public voID one rrorResponse(VolleyError error) {            Log.e(TAG, "response error \n" + error.networkResponse.statusCode);        }    }) {        @OverrIDe        protected Map<String, String> getParams() throws AuthFailureError {            try {                Map<String, String> map = new HashMap<String, String>();                String key = "Authorization";                String encodedString = Base64.encodetoString(String.format("%s:%s", "USERname", "Password").getBytes(), Base64.NO_WRAP);                String value = String.format("Basic %s", encodedString);                map.put(key, value);                return map;            } catch (Exception e) {                Log.e(TAG, "Authentication Filure" );            }            return super.getParams();        }    });

当我使用浏览器时,它会显示一个对话框,输入我的用户名和密码.如何使用Volley发送用户名和密码.

解决方法:

对于身份验证,恕我直言,你应该覆盖getheaders而不是getParams,请尝试以下方法:

@OverrIDepublic Map<String, String> getheaders() throws AuthFailureError {       Map<String, String> headers = new HashMap<>();                       String credentials = "username:password";       String auth = "Basic "                        + Base64.encodetoString(credentials.getBytes(), Base64.NO_WRAP);       headers.put("Content-Type", "application/Json");       headers.put("Authorization", auth);       return headers;}

希望能帮助到你!

总结

以上是内存溢出为你收集整理的android – 使用Volley请求发送身份验证信息全部内容,希望文章能够帮你解决android – 使用Volley请求发送身份验证信息所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1101103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存