【问题标题】:How to send authorization header in android using volley library GET method如何使用 volley 库 GET 方法在 android 中发送授权标头
【发布时间】:2019-01-05 03:13:37
【问题描述】:

如何在 android 中使用 volley 库为 GET 方法发送授权标头,请帮助我,谢谢

  public void token(){
    SharedPreferences usuario = getActivity().getSharedPreferences(DataManager.SharedPreferences, Context.MODE_PRIVATE);
    String id = usuario.getString(DataManager.json_Id, "");
    final String token = usuario.getString(DataManager.json_Token,"");
    StringRequest request = new StringRequest(Request.Method.GET, urlReadUser, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            if (!response.equals(null)) {
                Log.e("Your Array Response", response);
            } else {
                Log.e("Your Array Response", "Data Null");
            }
        }

    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError volleyError) {
            try {
                String responseBody = new String(volleyError.networkResponse.data, "utf-8");
                JSONObject jsonObject = new JSONObject(responseBody);
                //loadingData.dismiss();
                if (jsonObject.getInt(DataManager.json_Code) == 400) {
                   // onDialogErrorResponse();
                }

            } catch (JSONException e) {
                //Handle a malformed json response
                Log.d("Response", String.valueOf(e));
            } catch (UnsupportedEncodingException error) {

                Log.d("Response", String.valueOf(error));
            }
        }
    }) {

        //This is for Headers If You Needed
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String> params = new HashMap<String, String>();
            params.put("TOKEN", token);
            return params;
        }
    };
    request.setRetryPolicy(new DefaultRetryPolicy(
            10000,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    requestQueue = Volley.newRequestQueue(getActivity());
    requestQueue.add(request);
    DiskBasedCache cache = new 
    DiskBasedCache(getActivity().getCacheDir(), 500 * 1024 * 1024);
    requestQueue = new RequestQueue(cache, new BasicNetwork(new 
    HurlStack()));
    requestQueue.start();
}

我正在尝试通过 GET 方法向服务器发出请求以获取数据,我必须发送令牌以便我输入,但它返回一个错误,它告诉我插入标头令牌的方式是错误的,希望他们能支持我。

【问题讨论】:

    标签: android json android-volley


    【解决方案1】:

    授权标头一般发送为

    params.put("Authorization", "bearer " +token);
    

    这里的 bearer 是 auth 类型,它可以是 Basic 也可以根据你的 api 的要求。

    【讨论】:

      猜你喜欢
      • 2017-10-15
      • 2020-03-24
      • 2019-11-27
      • 2017-10-29
      • 1970-01-01
      • 2020-05-22
      • 2015-04-25
      • 2014-09-23
      • 2019-07-03
      相关资源
      最近更新 更多