Отправка данных с библиотекой JSONObject Volley на сервер методом POST - PullRequest
0 голосов
/ 01 декабря 2018

Я хочу отправить JsonObject с нижеуказанным форматом на сервер с помощью библиотеки Volley.

{
"Email":"a@a.a",
"Password":"123456",
"ProveedorAcceso":"web",
"NivelAcceso":{
    "Id": 1
},
"Estatus": {
    "Id":1
    } }

Мой код:

public void getData() {

    StringRequest postRequest = new StringRequest(Request.Method.POST, urlLogin,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        JSONObject jsonResponse = new JSONObject(response);
                        Log.d(TAG, String.valueOf(jsonResponse));

                    } catch (JSONException e) {
                        e.printStackTrace();
                        Log.d(TAG, String.valueOf(e));

                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError volleyError) {
                    try {
                        String responseBody = new String(volleyError.networkResponse.data, "utf-8");
                        JSONObject jsonObject = new JSONObject(responseBody);
                        /**
                        dialogLoading.dismiss();
                        if (jsonObject.getInt("Codigo") == 400) {
                            onDialogErrorResponse();
                        }**/

                    } catch (JSONException e) {
                        //Handle a malformed json response
                        Log.d("Response", String.valueOf(e));
                    } catch (UnsupportedEncodingException error) {

                        Log.d("Response", String.valueOf(error));
                    }
                }
            }
    ) {

        // here is params will add to your url using post method
        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params = new HashMap<String, String>();
            params.put("Email", edtEmail.getText().toString());
            params.put("Password", edtPassword.getText().toString());
            params.put("ProveedorAcceso", "web");
            params.put("NivelAcceso", 1+"");
            params.put("Estatus", 1+"");
            return params;
        }

    };

    postRequest.setRetryPolicy(new DefaultRetryPolicy(
            10000,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(postRequest);
    DiskBasedCache cache = new DiskBasedCache(this.getCacheDir(), 500 * 1024 * 1024);
    requestQueue = new RequestQueue(cache, new BasicNetwork(new HurlStack()));
    requestQueue.start();
}

Поскольку сервер не получает данные правильно, этовыдает ошибку со ссылкой на данные.

"Codigo": 500, "Mensaje": "Ссылка на объект не установлена ​​на экземпляр объекта."

Я надеюсь, что вы можете помочьЯ в этом сомнении, так как я очень смущен этим, большое спасибо.

...