informacioncom.android.volley.ParseError: org.json.JSONException: конец ввода в символе 0 из - PullRequest
0 голосов
/ 04 мая 2018

У меня проблема при попытке использовать метод PUT, я использую метод PUT для обновления записей моей таблицы через веб-сервис, проблема в том, что при попытке обновить данные я получаю следующую ошибку:

informacioncom.android.volley.ParseError: org.json.JSONException: End ввода в символ 0 от

Если я проверил таблицу в моей базе данных, она не вводит нулевые значения, она записывает пробелы.

Это мой метод обновления данных:

@Override
    public void onClickUpdate(final int position, final String identificador) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        LayoutInflater inflater = this.getLayoutInflater();
        View MyView = inflater.inflate(R.layout.dialog_signin_updatedonante, null);

        final EditText identidad = (EditText)MyView.findViewById(R.id.identificador_tarea);
        final EditText nombre_tarea = (EditText)MyView.findViewById(R.id.nombre_tarea);
        final EditText nota = (EditText)MyView.findViewById(R.id.nota_tarea);
        final EditText estudiante = (EditText)MyView.findViewById(R.id.estudiante_tarea);
        identidad.setEnabled(false);
        identidad.setText(identificador);

        String ntarea = nombre_tarea.getText().toString();
        String not = nota.getText().toString();
        String estudi = estudiante.getText().toString();

        final JSONObject jsonObject = new JSONObject();
        try{
            jsonObject.put("nombreUsuario", ntarea)
                    .put("nota", not)
                    .put("estudiante", estudi);
        }catch(JSONException e){
            e.printStackTrace();
        }

        final RequestQueue queue = Volley.newRequestQueue(getActivity());

        builder.setView(MyView)
                .setPositiveButton("Registrar", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int id) {
                        if(nombre_tarea.getText().toString().equals("") || nota.getText().toString().equals("") || estudiante.getText().toString().equals("")){
                            Toast.makeText(getActivity(), "Porfavor llena todos los campos", Toast.LENGTH_LONG ).show();
                        }else{
                            String urlPut = "http://192.168.1.81:8080/WebServiceExamenFinal/webapi/tareas/";

                            JsonObjectRequest request = new JsonObjectRequest(Request.Method.PUT, urlPut + identificador, jsonObject,
                                    new Response.Listener<JSONObject>() {
                                        @Override
                                        public void onResponse(JSONObject response) {

                                            Toast.makeText(getActivity(), "Se envió correctamente", Toast.LENGTH_LONG).show();
                                        }
                                    }, new Response.ErrorListener() {
                                @Override
                                public void onErrorResponse(VolleyError error) {
                                    Toast.makeText(getActivity(), "Ocurrió un error al enviar la información"+error, Toast.LENGTH_LONG).show();
                                }
                            });
                            queue.add(request);
                        }
                    }
                })
                .setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        Toast.makeText(getActivity(),"No se actualizo ningun registro", Toast.LENGTH_SHORT).show();
                        alertDialog.dismiss();
                    }
                });
        alertDialog = builder.create();
        alertDialog.show();

    }

1 Ответ

0 голосов
/ 04 мая 2018

Похоже, что ваша переменная jsonObject объявлена ​​окончательной, прежде чем вы добавите в нее свои данные. Лучшее решение - разделить ваш код на отдельные функции, но сейчас вы можете попробовать что-то вроде:

JSONObject tempJson = new JSONObject();
try{
tempJson.put("nombreUsuario", ntarea)
            .put("nota", not)
            .put("estudiante", estudi);
} catch(JSONException e){
    e.printStackTrace();
}
final JSONObject jsonObject = tempJson;
...