Мой 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
Вот трассировка стека: E / Volley: [258] BasicNetwork.performRequest: Неожиданный код ответа 500 для url
Вы пытались сделать запрос с помощью каких-либо других инструментов, например почтальона?
да, я пробовал. Нет ошибки с почтальоном
Что значит 500?
@Dexter поделитесь скриншотом запроса почтальона
@greenapps Это HTTP-код 500
Да, конечно. Но что это значит, был вопрос.
Ошибка 500 - это ошибка внутреннего сервера. Проверьте все параметры, а также метод запроса
Да, вы были правы, один параметр отсутствовал, но теперь его публикация два раза в базе данных и получение ответа об ошибке как: BasicNetwork.performRequest: неожиданный код ответа 500, его повторная попытка два раза, публикация успешна оба раза, но ответ - ошибка 500 , Ты знаешь как это решить?
Вы пробовали 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'
Не могли бы вы опубликовать полную трассировку стека ошибки?