Неожиданный код ответа 401 в залп при добавлении параметров - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть Api, который отлично работает на почтальоне, но не работает в моем коде с использованием модернизации. Аутентификация работает хорошо, когда у меня нет параметров, переданных в теле, но в других случаях я получаю ошибку 401

Я использовал модификацию раньше, ту же ошибку, затем я изменил на залп, но ошибка сохраняется. Но когда я тестирую с почтальоном, все работает нормально. Примечание: TOKEN хорошо работает с API для вызова, который имеет какой-либо параметр тела

 StringRequest request = new StringRequest(
                Request.Method.POST, Config.API_URL_DETAILS
                , new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                if (!response.equals(null)) {
                    Log.i("tag", "lii"+response);
                } else {
                    Log.i("tag", "lii Data Null");
                }
            }

        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e("error is ", "" + error);
                error.printStackTrace();
            }
        }) {


            //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("Content-Type", "application/x-www-form-urlencoded");
                params.put("Authorization", TOKEN);
                params.put("Accept", "application/json");
                return params;
            }

            @Override
            public String getBodyContentType() {
                return "application/x-www-form-urlencoded; charset=UTF-8";
            }


            //Pass Your Parameters here
            @Override
            protected Map<String, String> getParams() {
                Map<String, String> params = new HashMap<String, String>();

                params.put("event_id", "30");
                params.put("longitude", String.valueOf(3.4));
                params.put("latitude", String.valueOf(6.6063));
                return params;
            }


        };


        RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
        queue.add(request);

Я ожидаю, что на выходе будет ответ API, но на выходе будет код ответа 401. com.android.volley. AuthFailureError.

1 Ответ

0 голосов
/ 05 ноября 2019

Это происходит, когда запрос заблокирован от конечной точки API. Причиной может быть неправильно сформированный запрос:

  • Проверьте тип запроса [GET / POST / ANY OTHER]
  • Проверьте заголовок и текст запроса
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...