AuthFailureError в залпе

Я хочу использовать API открытых карт улиц когда я отправляю запрос в Api обратного гео-кодирования с залпом Эта ошибка отображается

com.android.volley.authfailureerror

Но этому API не нужен токен

это мой код:

 String url = "https://nominatim.openstreetmap.org/reverse?format=json&lat = "+lat+"&lon = "+lng;
    Response.Listener<JSONObject> listener = new Response.Listener<JSONObject>()
    {
        @Override
        public void onResponse(JSONObject response)
        {


            try
            {
                JSONObject address = response.getJSONObject("address");
                final String city = address.getString("town");
                final String county =  address.getString("county");        
                selectcity = true;
                String temp = county.substring(county.indexOf(" "),county.length());
                ed.putString("lat", lat+"");
                ed.putString("lng", lng+"");
                ed.putString("location", temp);
                ed.apply();
                progressDialog.dismiss();
                RequestQueue mRequestQueue;
                mRequestQueue =AppController.getInstance().getRequestQueue();
                mRequestQueue.cancelAll("AppController");
                locationManager.removeUpdates(LocationActivity.this);
            }
            catch (JSONException e)
            {
                e.printStackTrace();
                Toast.makeText(getApplicationContext(), "Erorr", Toast.LENGTH_LONG).show();
                RequestQueue mRequestQueue;
                mRequestQueue =AppController.getInstance().getRequestQueue();
                mRequestQueue.cancelAll("AppController");
                progressDialog.dismiss();
                locationManager.removeUpdates(LocationActivity.this);
            }

        }
    };

    Response.ErrorListener errorListener = new Response.ErrorListener()
    {
        @Override
        public void onErrorResponse(VolleyError error)
        {
            Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_LONG).show();
            RequestQueue mRequestQueue;
            mRequestQueue =AppController.getInstance().getRequestQueue();
            mRequestQueue.cancelAll("AppController");
            progressDialog.dismiss();
            locationManager.removeUpdates(LocationActivity.this);
        }
    };

    final JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, listener, errorListener){
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            headers.put("accept-language", "fa");
            return headers;
        }
    };
    request.setTag("AppController");
    AppController.getInstance().addToRequestQueue(request);

Кроме того, когда я использую этот URL-адрес в почтальоне, он работает правильно

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
1 112
1

Ответы 1

попробуй так

RequestQueue requestQueue = Volley.newRequestQueue(mContext);
    StringRequest stringRequest = new StringRequest(Request.Method.GET, Your_URL, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
          //response
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d("== = ","onErrorResponse  "+error)
        }
    }) {
        @Override
        public String getBodyContentType() {
            return "application/json; charset=utf-8";
        }

        @Override
        public byte[] getBody() throws AuthFailureError {
            try {
               Log.d("== = ","AuthFailureError");
            } catch (UnsupportedEncodingException uee) {

                VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s", requestBody, "utf-8");
                return null;
            }
        }

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String> params = new HashMap<String, String>();
            params.put("Content-Type", "application/json");


            return params;
        }

        @Override
        protected Response<String> parseNetworkResponse(NetworkResponse response) {
            String responseString = "";
            if (response != null) {
                responseString = String.valueOf(response.statusCode);
                // can get more details such as response.headers
                try {

                } catch (Exception e) {

                }
            }
            return Response.success(responseString, HttpHeaderParser.parseCacheHeaders(response));
        }
    };
    stringRequest.setRetryPolicy(new RetryPolicy() {
        @Override
        public int getCurrentTimeout() {
            return 50000;
        }

        @Override
        public int getCurrentRetryCount() {
            return 50000;
        }

        @Override
        public void retry(VolleyError error) throws VolleyError {

        }
    });
    requestQueue.add(stringRequest);

попробуйте, но не работает Я использую дооснащение для решения своей проблемы

Hreza779 27.09.2018 09:55

Другие вопросы по теме