Внутренняя ошибка сервера при подключении к серверу в Android с помощью залпа? - PullRequest
0 голосов
/ 30 сентября 2019

здесь мой код функции для публикации с использованием залпа

    StringRequest stringRequest = new StringRequest(Request.Method.POST, URL_CHECK_IN,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        JSONObject jsonObject = new JSONObject(response);
                        int status = jsonObject.getInt("status");

                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError response) {

                }
            }) {

        @Override
        public String getBodyContentType() {
            return "application/json; charset=utf-8";
        }

        @Override
        public byte[] getBody() throws AuthFailureError {
            try {
                return requestBody == null ? null : requestBody.getBytes("utf-8");
            } 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 () {
            Map<String, String> map = new HashMap<String, String>();
            map.put("Content-Type", "application/json");
            map.put("appid", appids);
            map.put("timestamp", timestamps);
            map.put("token", tokens);
            map.put("signature", signatures);
            return map;
        }
    };
}

Я не знаю, что не так с моим кодом, потому что 2 дня назад все в порядке. и когда я попытался отладить, ошибка показывает, как это

BasicNetwork.performRequest: Unexpected response code 500 for http://api/presence/check_in

Может кто-нибудь помочь мне, пожалуйста? потому что я застрял и мне нужна помощь или ссылка, чтобы решить мою ошибку спасибо

1 Ответ

2 голосов
/ 30 сентября 2019

HTTP-код 500 - Внутренняя ошибка сервера. Подробнее здесь . Обычно это означает, что сервер не может обработать запрос и получить ответ. Это означает, что код вашего приложения может быть в порядке, в то время как сервер может столкнуться с некоторой проблемой при обработке текущего тела запроса. Я вижу, что вы отправляете String в теле вашего запроса. Одна специфическая вещь, которую я заметил при отправке String в теле запроса, заключается в том, что нам также нужно проверить, является ли String null или нет, лучше использовать метод .trim() в конце вашей строки, чтоудалит начальные и конечные пробелы. Причиной может быть что-то простое, например, не экранирование одинарных кавычек ( ') для поля, которое вы пытаетесь вставить в базу данных на своем сервере. Таким образом, валидация полей на стороне сервера и лучшие практики, такие как подготовленные отчеты, также очень важны. Если вы абсолютно уверены, что ваша клиентская часть [android app] исправна, возможно, сервер сталкивается с какой-то проблемой в конечной точке, которую вы нажимаете. Протестируйте ваш API с клиентом отдыха, таким как POSTMAN или INSOMNIA , чтобы быть абсолютно уверенным, что ваш сервер и уровень API работают должным образом. Удачи

...