Android Volley NoConnectionError - PullRequest
       10

Android Volley NoConnectionError

0 голосов
/ 01 июля 2018

Я использую один и тот же тип запроса в своем приложении для более чем 10 различных типов соединений, все они работают, кроме этого, и я не могу понять, почему, единственное различие между ними - отправляемые параметры. Если я вручную отправляю запрос (вводя данные в адресную строку), все возвращается нормально, но когда пытается подключиться залп, он говорит, что NoConnectionError происходит. Я пробовал это с моим соединением 4G и соединением WIFI, и оно всегда возвращает то же самое.

UPDATE

Хорошо, поэтому я удалил параметры при отправке lat / long, и теперь сервер отправляет ответ обратно. Я неправильно отправляю лат / лонг?

public void updateLoc(final double latitude, final double longitude, final Context context)
{
    if (context != null)
    {
        RequestQueue queue = Volley.newRequestQueue(context);
        StringRequest stringRequest = new StringRequest(Request.Method.POST, URL_FOR_ACCOUNT,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response)
                    {
                        Log.e("Network", "Response " + response);
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                if (error instanceof TimeoutError) {
                    Log.e(TAG,"Update Location Request timed out.");
                }else if (error instanceof NoConnectionError){
                    Log.e(TAG,"Update Location no connection.");
                } else if (error instanceof AuthFailureError) {
                    Log.e(TAG,"Auth failure");
                } else if (error instanceof ServerError) {
                    Log.e(TAG,"Server Error");
                } else if (error instanceof NetworkError) {
                  Log.e(TAG,"Network Error");
                } else if (error instanceof ParseError) {
                    Log.e(TAG,"Parse Error");
                }
            }
        }) {
            //adding parameters to the request
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                Map<String, String> params = new HashMap<>();
                params.put("command", "updateLoc");
                params.put("appVersion", version);
                params.put("androidVersionNumber", Integer.toString(Build.VERSION.SDK_INT));
                params.put("email", userEmail);
                params.put("lat", String.valueOf(latitude));
                params.put("long", String.valueOf(longitude));
                return params;
            }
        };

1 Ответ

0 голосов
/ 01 июля 2018

Хорошо, я выяснил, в чем заключалась моя ошибка, вы не можете публиковать такие вещи, как long, string, boolean и т. Д., Если они отображаются как строковое имя. Я изменил эту строку:

 params.put("long", String.valueOf(longitude));

к этой строке:

 params.put("lng", String.valueOf(longitude));

и все снова работает нормально. Я не смог найти документацию, в которой говорится, что вы не можете использовать их в качестве имен строк.

...