Неожиданный код ответа 500 для POST com.android.volley.ServerError Laravel backend

Мой api работает нормально, но я получаю неожиданный код ответа 500, ошибка при публикации в api с использованием следующего кода:

StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
                        new Response.Listener<String>() {
                            @Override
                            public void onResponse(String response) {
                                Log.i("TAG", "Response: " + response);
                            }

                        }, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        Toast.makeText(MainActivity.this, "Error:...", Toast.LENGTH_SHORT).show();
                        error.printStackTrace();
                    }
                }) {
                    @Override
                    protected Map<String, String> getParams() throws AuthFailureError {
                        Map<String, String> params = new HashMap<>();
                        params.put("name", name);
                        params.put("address", address);
                        params.put("email", email);
                        return params;
                    }
                };
                MySingleton.getmInstance(MainActivity.this).addToRequestQueue(stringRequest);

Трассировки стека: E / Volley: [258] BasicNetwork.performRequest: неожиданный код ответа 500 для URL

Скажите, пожалуйста, что мне здесь не хватает ...

РЕДАКТИРОВАТЬ 1:

Предыдущая ошибка возникла из-за отсутствия параметра и По предложению Аниша я исправил недостающий параметр.

Но теперь его публикация дважды в базе данных и получение ответа об ошибке как: BasicNetwork.performRequest: Unexpected response code 500

его повторная попытка два раза, публикация оба раза успешна, но ответ - ошибка 500, Кто-нибудь знает, как это исправить? У меня Бэкэнд Laravel

Не могли бы вы опубликовать полную трассировку стека ошибки?

isakbob 10.08.2018 19:19

Вот трассировка стека: E / Volley: [258] BasicNetwork.performRequest: Неожиданный код ответа 500 для url

user10180461 10.08.2018 19:23

Вы пытались сделать запрос с помощью каких-либо других инструментов, например почтальона?

Navneet Krishna 10.08.2018 19:34

да, я пробовал. Нет ошибки с почтальоном

user10180461 10.08.2018 19:37

Что значит 500?

greenapps 10.08.2018 19:48

@Dexter поделитесь скриншотом запроса почтальона

Navneet Krishna 10.08.2018 20:03

@greenapps Это HTTP-код 500

isakbob 10.08.2018 20:11

Да, конечно. Но что это значит, был вопрос.

greenapps 11.08.2018 20:56
0
8
2 148
2

Ответы 2

Ошибка 500 - это ошибка внутреннего сервера. Проверьте все параметры, а также метод запроса

Да, вы были правы, один параметр отсутствовал, но теперь его публикация два раза в базе данных и получение ответа об ошибке как: BasicNetwork.performRequest: неожиданный код ответа 500, его повторная попытка два раза, публикация успешна оба раза, но ответ - ошибка 500 , Ты знаешь как это решить?

user10180461 11.08.2018 06:55

Вы пробовали AndroidNetworking? Это проще в использовании.

например.

сначала вам нужно собрать свои параметры на JSONObject или JSONArray, как это

 JSONObject params = new JSONObject();

    try {
        params.put("param0", value0);
        params.put("param1", value1);
        params.put("param2", value2);
        params.put("param3", value3);

И строительство будет таким. (Приведенный мне пример - JSONObject)

OkHttpClient okHttpClient = new OkHttpClient().newBuilder()      //<--- this is for the connection time out. if the device response is too long
            .connectTimeout(2, TimeUnit.SECONDS)
            .readTimeout(2, TimeUnit.SECONDS)
            .writeTimeout(2, TimeUnit.SECONDS)
            .build();

    AndroidNetworking.initialize(getContext(), okHttpClient);
    AndroidNetworking.post(baseUrl + "endpoint")
            .addJSONObjectBody(params)
            .addHeaders("Content-Type", "application/json")
            .addHeaders("Prefer", "return=representation")
            .addHeaders("Accept", "application/vnd.pgrst.object+json") //<---- this part is for postgres database. you can remove it if you won't use it
            .setPriority(Priority.HIGH)
            .build().getAsJSONObject(new JSONObjectRequestListener() {

        @Override
        public void onResponse(JSONObject response) {
            Log.e("response EOD", String.valueOf(response));

            try {
                //your Statement here when the server has response

            } catch (JSONException e) {
                e.printStackTrace();
                sendAndgetDispID();
            }
        }

        @Override
        public void onError(ANError anError) {
            try {
                //Log the error if there's any
                if (error.getErrorCode() != 0) {
                    Log.d("onError errorCode", "onError errorCode : " + error.getErrorCode());
                    Log.d("onError errorBody", "onError errorBody : " + error.getErrorBody());
                    Log.d("onError errorDetail", "onError errorDetail : " + error.getErrorDetail());

                } else {
                    Log.d("onError errorDetail", "onError errorDetail : " + error.getErrorDetail());
                }

            } catch (Throwable e) {
                e.printStackTrace();

            }
        });
    } catch(Throwable e){
        e.printStackTrace();
    }

Не забудьте указать это в своем модульном приложении build.gradle.

implementation 'com.amitshekhar.android:android-networking:1.0.1'

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