Я хочу отправить эти данные на сервер как JSONObject
{
"userId": "5f06ca75ce77e8e2cdd2f320",
"services": [
{
"serviceId": "5eeb4d5f2d4f7288d8959f68"
},
{
"serviceId": "5eeb5b942b567b6a8fee6b00"
}
]
}
это моя кнопка, где я создаю указанный выше формат, и он отлично создает
binding.btnFeedback.setOnClickListener(v -> {
JSONObject jsonOBJ = new JSONObject();
try {
JSONArray list = new JSONArray();
jsonOBJ.put("userId", "5f06ca75ce77e8e2cdd2f320");
String[] dataArray = {"5eeb4d5f2d4f7288d8959f68","5eeb5b942b567b6a8fee6b00"};
for( int i=0;i<dataArray.length;i++) {
JSONObject internalObject = new JSONObject();
internalObject.put("serviceId",dataArray[i]);
list.put(internalObject);
}
jsonOBJ.put("services", list);
} catch (JSONException e) {
Toast.makeText(getActivity(), ""+e.getMessage(), Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
mViewModel.apiCallArray(jsonOBJ);
});
}
это это мой блок модернизации
APIService services = RetroClass.getApiClient(My.token).create(APIService.class);
Call<TestResponse> allUsers = services.test(list);
allUsers.enqueue(new Callback<TestResponse>() {
@Override
public void onResponse(@NotNull Call<TestResponse> call, @NotNull Response<TestResponse> response) {
progressBar.setValue(8);
if(response.isSuccessful()){
showToast(getApplication(),""+response);
}
else {
try {
JSONObject jObjError = new JSONObject(response.errorBody().string());
showToast(getApplication().getApplicationContext(),jObjError.getString("msg"));
} catch (Exception e) {
Log.d("", e.getMessage());
showToast(getApplication(),""+e.getMessage());
}
}
}
@Override
public void onFailure(Call<TestResponse> call, Throwable t) {
progressBar.setValue(8);
showToast(getApplication().getApplicationContext(),t.getMessage());
}
});
И это мой класс интерфейса
@POST("profile/update-interests")
Call<TestResponse> test(@Body JSONObject jsonArray);
Сообщение об ошибке в logcat: I / okhttp.OkHttpClient: <- 422 Unprocessable Entity Content-Type : application / json</p>
Но когда я нажимаю кнопку публикации, он возвращает нулевое тело ответа и показывает ошибку «Нет значения для msg». кто-нибудь может мне помочь?