how to send json object to server using volley in android

后端 未结 2 1182
小蘑菇
小蘑菇 2020-11-27 19:24

I want to send the JSONObject to server using POST method . I have used volley library to pass the string params its working fine, but if i try to use json ob

相关标签:
2条回答
  • 2020-11-27 19:54

    Create new Method and call it in OnClick method

    public void PostOperation() {
            requestQueue = Volley.newRequestQueue(this);
            pdialog = new ProgressDialog(this);
            pdialog.setMessage("Loading");
            pdialog.show();
    
            StringRequest stringRequest = new StringRequest(Request.Method.POST, "YOUR_URL",
                    new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {
                            pdialog.dismiss();
                            Log.e("login output", response);
    //MODEL CLASS
                           LoginModel loginModel = new GsonBuilder().create().fromJson(response, LoginModel.class);
    
    
                            if (loginModel.getStatus().toString().equalsIgnoreCase("true")) {
    
    
                                Intent i = new Intent(context, DashboardActivity.class);
                                startActivity(i);
                                finish();
    
                                Toast.makeText(context, loginModel.getStatus() + "", Toast.LENGTH_SHORT).show();
                            } else {
    
                                Toast.makeText(context, loginModel.getMsg() + "", Toast.LENGTH_SHORT).show();
    
                            }
    
                        }
                    },
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            pdialog.dismiss();
                            Toast.makeText(getApplicationContext(), "Invalid Credentials", Toast.LENGTH_SHORT).show();
                        }
                    }) {
                @Override
                protected Map<String, String> getParams() {
                    HashMap<String, String> map = new HashMap<String, String>();
    
                  // pass your input text
    
                    map.put("email" editTextEmail.getText().toString()); 
                    map.put("password",editTextPassword.getText().toString() );
    
                    map.put("uid", "1"); 
                    map.put("type", "login");
    
    
                    Log.e("para", map + "");
                    return map;
                }
    
            };
            requestQueue.add(stringRequest);
    
        }
    
    0 讨论(0)
  • 2020-11-27 19:55

    Third parameter in JsonObjectRequest is for passing post parameters in jsonobject form. And for header you need to send two separate values one for content-type one for charset.

      RequestQueue queue = Volley.newRequestQueue(this);
    
      private void makeJsonObjReq() {
        showProgressDialog();
    
    
                Map<String, String> postParam= new HashMap<String, String>();
                postParam.put("un", "xyz@gmail.com");
                postParam.put("p", "somepasswordhere");
    
    
        JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.POST,
                Const.URL_LOGIN, new JSONObject(postParam),
                new Response.Listener<JSONObject>() {
    
                    @Override
                    public void onResponse(JSONObject response) {
                        Log.d(TAG, response.toString());
                        msgResponse.setText(response.toString());
                        hideProgressDialog();
                    }
                }, new Response.ErrorListener() {
    
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        VolleyLog.d(TAG, "Error: " + error.getMessage());
                        hideProgressDialog();
                    }
                }) {
    
            /**
             * Passing some request headers
             * */
            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                HashMap<String, String> headers = new HashMap<String, String>();
                headers.put("Content-Type", "application/json; charset=utf-8");
                return headers;
            }
    
    
    
        };
    
        jsonObjReq.setTag(TAG);
        // Adding request to request queue
        queue.add(jsonObjReq);
    
        // Cancelling request
        /* if (queue!= null) {
        queue.cancelAll(TAG);
        } */
    
    }
    
    0 讨论(0)
提交回复
热议问题