Я генерирую метод JsonObjectRequest.PUT через веб-сервис. Метод PUT успешно достигнут (он обновляет объект в базе данных), но по какой-то причине выдает мне эту ошибку org.json.JSONException: End of input at character 0 of
Я не могу понять причину. Несмотря на сообщение об ошибке и приложение cra sh, оно обновляет базу данных в соответствии с запросом, есть идеи по ее решению?
это часть фрагмента, в котором я делаю запрос:
private void putRequest(int idTarea, String nombreTarea, int id_asignatura, int id_estudiante, double nota) {
String url = "http://192.168.100.113:8090/WebServiceNextUSchool/webapi/tareas/" + idTarea;
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("nombre_tarea", nombreTarea)
.put("nota", nota)
.put("id_estudiante", id_estudiante)
.put("id_asignatura", id_asignatura)
.put("id_tarea", idTarea);
} catch (JSONException e) {
e.printStackTrace();
}
RequestQueue queue = Volley.newRequestQueue(getContext());
final ProgressDialog dialog = new ProgressDialog(getContext());
dialog.setMessage("Por favor espere...");
dialog.show();
JsonObjectRequest request = new JsonObjectRequest(Request.Method.PUT, url, jsonObject,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
if (dialog.isShowing()) dialog.dismiss();
Toast.makeText(context, "Se actualizó la tarea", Toast.LENGTH_SHORT).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (dialog.isShowing()) dialog.dismiss();
System.out.println(error.getMessage());
Toast.makeText(context, "No se actualizó la tarea", Toast.LENGTH_SHORT).show();
}
});
queue.add(request);
}
А это код из WebService:
@Override
public void update(Tarea entity) throws SQLException {
String query = "UPDATE Tareas SET nombre_tarea = ?, nota = ?, id_estudiante = ?, id_asignatura = ? WHERE id_tarea = ?";
if (update == null) {
update = MysqlConnection.getInstance().getConnection().prepareStatement(query);
}
update.setString(1, entity.getNombre_tarea());
update.setDouble(2, entity.getNota());
update.setInt(3, entity.getId_estudiante());
update.setInt(4, entity.getId_asignatura());
update.setInt(5, entity.getId_tarea());
Integer idStudent = entity.getId_estudiante();
Integer idSubject = entity.getId_asignatura();
if (!isStudent(idStudent)) {
System.out.println("El ID de usuario ingresado no es de un estudiante, verifique e intente de nuevo");
} else if (!verifyUserExists(idStudent)) {
System.out.println("No existe estudiante con el ID ingresado");
} else if (!verifySubjectExists(idSubject)) {
System.out.println("No existe asignatura con el ID ingresado");
} else {
update.executeUpdate();
System.out.println("Tarea actualizada exitosamente");
}
}
....
@PUT
@Path("{id}")
public void put(@PathParam("id") Integer id, Tarea tarea) {
tarea.setId_tarea(id);
try {
DaoTarea.getInstance().update(tarea);
} catch (SQLException ex) {
Logger.getLogger(TareaResource.class.getName()).log(Level.SEVERE, null, ex);
}
}