在Android截击中使用POST方法将对象作为数据发送?

在Android截击中使用POST方法将对象作为数据发送?,android,object,post,android-volley,Android,Object,Post,Android Volley,我正在使用POST方法,并试图使用Android Volley库将对象作为数据发送,以将当前密码更改为新密码,但我无法做到这一点 设置片段 public class SettingFragment extends Fragment implements View.OnClickListener { EditText userName, oldPassword, newPassword; String Navigation_URL_SettingRequest = "http:

我正在使用POST方法,并试图使用Android Volley库将对象作为数据发送,以将当前密码更改为新密码,但我无法做到这一点

设置片段

  public class SettingFragment extends Fragment implements View.OnClickListener {
    EditText userName, oldPassword, newPassword;
    String Navigation_URL_SettingRequest = "http://192.168.100.5:84/api/usersApi/updateByMasterID";
    String username, oldpassword, newpassword;
    String master_id, Name, access_token;

    Button save, reset;
    public static final String KEY_Name = "NAME";
    public static final String KEY_USERNAME = "UserName";
    public static final String KEY_OldPASSWORD = "oldPassword";
    public static final String KEY_UserPassword = "UserPassword";
    public static final String KEY_MasterID = "MasterID";


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_setting, container, false);
        setHasOptionsMenu(true);

        userName = (EditText) view.findViewById(R.id.setting_username);
        oldPassword = (EditText) view.findViewById(R.id.setting_oldpassword);
        newPassword = (EditText) view.findViewById(R.id.setting_newpassword);
        save = (Button) view.findViewById(R.id.setting_save);
        reset = (Button) view.findViewById(R.id.setting_reset);

        SessionManagement session = new SessionManagement(getContext());
        session.checkLogin();
        access_token = session.getAccesstToken();
        master_id = session.getMasterId1();
        System.out.println(master_id);
        Name = session.getKeyName();

        save.setOnClickListener(this);
        return view;
    }


    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        // TODO Auto-generated method stub
        super.onCreateOptionsMenu(menu, inflater);
        inflater.inflate(R.menu.dashboard, menu);
    }


    private void makeJsonSettingRequest() throws JSONException {


        username = userName.getText().toString().trim();
        oldpassword = oldPassword.getText().toString().trim();
        newpassword = newPassword.getText().toString().trim();


     /*
        // JSONObject js = new JSONObject();
        try {
            RequestQueue requestQueue = Volley.newRequestQueue(getActivity());
            String URL = "http://192.168.100.5:84/api/usersApi/updateByMasterID";
            JSONObject jsonBody = new JSONObject();
            jsonBody.put(KEY_USERNAME, username);
            jsonBody.put(KEY_OldPASSWORD, oldpassword);
            jsonBody.put(KEY_UserPassword, newpassword);
            jsonBody.put(KEY_MasterID, master_id);
            jsonBody.put(KEY_Name, Name);
            final String requestBody = jsonBody.toString();

            StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Log.i("VOLLEY", response);
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.e("VOLLEY", error.toString());
                    //  error.getMessage();

                }
            }) {
                @Override
                public String getBodyContentType() {
                    return "Content-Type;application/x-www-form-urlencoded";
                }

                @Override
                public byte[] getBody() throws AuthFailureError {
                    try {
                        return requestBody == null ? null : requestBody.getBytes("utf-8");
                    } catch (UnsupportedEncodingException uee) {
                        VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s", requestBody, "utf-8");
                        return null;
                    }
                }

                @Override
                protected Response<String> parseNetworkResponse(NetworkResponse response) {
                    String responseString = "";
                    if (response != null) {
                        responseString = String.valueOf(response.statusCode);
                        // can get more details such as response.headers
                    }
                    return Response.success(responseString, HttpHeaderParser.parseCacheHeaders(response));
                }
            };

            requestQueue.add(stringRequest);
        } catch (JSONException e) {
            e.printStackTrace();
        }

    */


        //   JSONObject params = new JSONObject();
        //   params.put(KEY_Name, Name);
        //   params.put(KEY_MasterID, master_id);
        //   params.put(KEY_USERNAME, username);
        //   params.put(KEY_OldPASSWORD, oldpassword);
        //   params.put(KEY_UserPassword, newpassword);


        StringRequest stringRequest = new StringRequest(Request.Method.POST, Navigation_URL_SettingRequest,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Log.i("VOLLEY", response);

                        // VolleyLog.v("Response:%n %s", response.toString(4));


                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                        System.out.println("This is an Error mate");


                    }
                }) {


            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String, String> headers = new HashMap<String, String>();
                // headers.put("Authorization", "Bearer " + access_token);
                //  headers.put("Authorization",   access_token);
                //  headers.put("Content-Type", "application/x-www-form-urlencoded");

                //  headers.put("Content-Type", "application/json");

                //   headers.put(KEY_Name, Name);
                //   headers.put(KEY_MasterID, master_id);
                //   headers.put(KEY_USERNAME, username);
                //   headers.put(KEY_OldPASSWORD, oldpassword);
                //   headers.put(KEY_UserPassword, newpassword);


                return headers;
            }

            @Override
            protected Map<String, String> getParams() {
                Map<String, String> map = new HashMap<String, String>();
                //JSONObject content = new JSONObject();

                try {


                    map.put(KEY_USERNAME, username);
                    map.put(KEY_OldPASSWORD, oldpassword);
                    map.put(KEY_UserPassword, newpassword);
                    map.put(KEY_MasterID,   master_id);
                    map.put(KEY_Name, Name);


                    Log.d("Success", map.put(KEY_USERNAME, username));

                } catch (Exception e) {

                    e.printStackTrace();
                }


                //map.put("access_token", accesstoken);
                //  map.put("grant_type", "password");
                return map;
            }
        };
        stringRequest.setRetryPolicy(new DefaultRetryPolicy(
                60000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));


        RequestQueue requestQueue = Volley.newRequestQueue(getContext());
        requestQueue.add(stringRequest);


    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // handle item selection
        switch (item.getItemId()) {
            case R.id.action_settings:
                // do s.th.
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }


    @Override
    public void onClick(View v) {
        try {
            makeJsonSettingRequest();
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}
05-29 16:16:49.764 1114-2077/com.example.user.mis E/Volley: [651] BasicNetwork.performRequest: Unexpected response code 404 for http://192.168.100.5:84/api/usersApi/updateByMasterID
我可以通过邮递员发送邮件,但通过密码我无法发送

logcat

  public class SettingFragment extends Fragment implements View.OnClickListener {
    EditText userName, oldPassword, newPassword;
    String Navigation_URL_SettingRequest = "http://192.168.100.5:84/api/usersApi/updateByMasterID";
    String username, oldpassword, newpassword;
    String master_id, Name, access_token;

    Button save, reset;
    public static final String KEY_Name = "NAME";
    public static final String KEY_USERNAME = "UserName";
    public static final String KEY_OldPASSWORD = "oldPassword";
    public static final String KEY_UserPassword = "UserPassword";
    public static final String KEY_MasterID = "MasterID";


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_setting, container, false);
        setHasOptionsMenu(true);

        userName = (EditText) view.findViewById(R.id.setting_username);
        oldPassword = (EditText) view.findViewById(R.id.setting_oldpassword);
        newPassword = (EditText) view.findViewById(R.id.setting_newpassword);
        save = (Button) view.findViewById(R.id.setting_save);
        reset = (Button) view.findViewById(R.id.setting_reset);

        SessionManagement session = new SessionManagement(getContext());
        session.checkLogin();
        access_token = session.getAccesstToken();
        master_id = session.getMasterId1();
        System.out.println(master_id);
        Name = session.getKeyName();

        save.setOnClickListener(this);
        return view;
    }


    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        // TODO Auto-generated method stub
        super.onCreateOptionsMenu(menu, inflater);
        inflater.inflate(R.menu.dashboard, menu);
    }


    private void makeJsonSettingRequest() throws JSONException {


        username = userName.getText().toString().trim();
        oldpassword = oldPassword.getText().toString().trim();
        newpassword = newPassword.getText().toString().trim();


     /*
        // JSONObject js = new JSONObject();
        try {
            RequestQueue requestQueue = Volley.newRequestQueue(getActivity());
            String URL = "http://192.168.100.5:84/api/usersApi/updateByMasterID";
            JSONObject jsonBody = new JSONObject();
            jsonBody.put(KEY_USERNAME, username);
            jsonBody.put(KEY_OldPASSWORD, oldpassword);
            jsonBody.put(KEY_UserPassword, newpassword);
            jsonBody.put(KEY_MasterID, master_id);
            jsonBody.put(KEY_Name, Name);
            final String requestBody = jsonBody.toString();

            StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Log.i("VOLLEY", response);
                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Log.e("VOLLEY", error.toString());
                    //  error.getMessage();

                }
            }) {
                @Override
                public String getBodyContentType() {
                    return "Content-Type;application/x-www-form-urlencoded";
                }

                @Override
                public byte[] getBody() throws AuthFailureError {
                    try {
                        return requestBody == null ? null : requestBody.getBytes("utf-8");
                    } catch (UnsupportedEncodingException uee) {
                        VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s", requestBody, "utf-8");
                        return null;
                    }
                }

                @Override
                protected Response<String> parseNetworkResponse(NetworkResponse response) {
                    String responseString = "";
                    if (response != null) {
                        responseString = String.valueOf(response.statusCode);
                        // can get more details such as response.headers
                    }
                    return Response.success(responseString, HttpHeaderParser.parseCacheHeaders(response));
                }
            };

            requestQueue.add(stringRequest);
        } catch (JSONException e) {
            e.printStackTrace();
        }

    */


        //   JSONObject params = new JSONObject();
        //   params.put(KEY_Name, Name);
        //   params.put(KEY_MasterID, master_id);
        //   params.put(KEY_USERNAME, username);
        //   params.put(KEY_OldPASSWORD, oldpassword);
        //   params.put(KEY_UserPassword, newpassword);


        StringRequest stringRequest = new StringRequest(Request.Method.POST, Navigation_URL_SettingRequest,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Log.i("VOLLEY", response);

                        // VolleyLog.v("Response:%n %s", response.toString(4));


                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                        System.out.println("This is an Error mate");


                    }
                }) {


            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String, String> headers = new HashMap<String, String>();
                // headers.put("Authorization", "Bearer " + access_token);
                //  headers.put("Authorization",   access_token);
                //  headers.put("Content-Type", "application/x-www-form-urlencoded");

                //  headers.put("Content-Type", "application/json");

                //   headers.put(KEY_Name, Name);
                //   headers.put(KEY_MasterID, master_id);
                //   headers.put(KEY_USERNAME, username);
                //   headers.put(KEY_OldPASSWORD, oldpassword);
                //   headers.put(KEY_UserPassword, newpassword);


                return headers;
            }

            @Override
            protected Map<String, String> getParams() {
                Map<String, String> map = new HashMap<String, String>();
                //JSONObject content = new JSONObject();

                try {


                    map.put(KEY_USERNAME, username);
                    map.put(KEY_OldPASSWORD, oldpassword);
                    map.put(KEY_UserPassword, newpassword);
                    map.put(KEY_MasterID,   master_id);
                    map.put(KEY_Name, Name);


                    Log.d("Success", map.put(KEY_USERNAME, username));

                } catch (Exception e) {

                    e.printStackTrace();
                }


                //map.put("access_token", accesstoken);
                //  map.put("grant_type", "password");
                return map;
            }
        };
        stringRequest.setRetryPolicy(new DefaultRetryPolicy(
                60000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));


        RequestQueue requestQueue = Volley.newRequestQueue(getContext());
        requestQueue.add(stringRequest);


    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // handle item selection
        switch (item.getItemId()) {
            case R.id.action_settings:
                // do s.th.
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }


    @Override
    public void onClick(View v) {
        try {
            makeJsonSettingRequest();
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}
05-29 16:16:49.764 1114-2077/com.example.user.mis E/Volley: [651] BasicNetwork.performRequest: Unexpected response code 404 for http://192.168.100.5:84/api/usersApi/updateByMasterID
如何解决这个问题


您还可以使用
StringRequest
将POST
参数作为
JSONObject
发送

试试这个:

    private static final String KEY_Name = "NAME"
    private static final String KEY_MasterID = "MasterID"
    private static final String KEY_USERNAME = "UserName"
    private static final String KEY_OldPASSWORD = "oldPassword"
    private static final String KEY_UserPassword= "UserPassword"

    ..........
    ..................

    JSONObject params = new JSONObject();
    params.put(KEY_Name, Name);
    params.put(KEY_MasterID, master_id);
    params.put(KEY_USERNAME, username);
    params.put(KEY_OldPASSWORD, oldpassword);
    params.put(KEY_UserPassword, newpassword);

    StringRequest stringRequest = new StringRequest(Request.Method.POST, 
            Navigation_URL_SettingRequest, params, 
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Log.i("VOLLEY", response);

                    // VolleyLog.v("Response:%n %s", response.toString(4));
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                    System.out.println("This is an Error mate");
                }
            }) 
    {
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String> headers = new HashMap<String, String>();
            // headers.put("Authorization", "Bearer " + access_token);
            // headers.put("Authorization",   access_token);
            // headers.put("Content-Type", "application/x-www-form-urlencoded");
            // headers.put("Content-Type", "application/json");
            return headers;
        }
    };

    stringRequest.setRetryPolicy(new DefaultRetryPolicy(
            60000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));


    RequestQueue requestQueue = Volley.newRequestQueue(getContext());
    requestQueue.add(stringRequest);

    ..............
    ...................
private static final String KEY\u Name=“Name”
私有静态最终字符串密钥\u MasterID=“MasterID”
私有静态最终字符串密钥\u USERNAME=“USERNAME”
私有静态最终字符串密钥\u OldPASSWORD=“OldPASSWORD”
私有静态最终字符串密钥\u UserPassword=“UserPassword”
..........
..................
JSONObject参数=新的JSONObject();
参数put(键名称、名称);
参数put(密钥主id,主id);
参数put(KEY_用户名、用户名);
参数put(KEY_OldPASSWORD,OldPASSWORD);
参数put(KEY_UserPassword,newpassword);
StringRequest StringRequest=新StringRequest(Request.Method.POST,
导航\u URL\u设置请求,参数,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
Log.i(“截击”,回应);
//VolleyLog.v(“响应:%n%s”,响应.toString(4));
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
System.out.println(“这是一个错误匹配”);
}
}) 
{
@凌驾
公共映射getHeaders()引发AuthFailureError{
Map headers=newhashmap();
//头.put(“授权”、“承载”+访问令牌);
//headers.put(“授权”,访问令牌);
//headers.put(“内容类型”、“应用程序/x-www-form-urlencoded”);
//headers.put(“内容类型”、“应用程序/json”);
返回标题;
}
};
stringRequest.setRetryPolicy(新的DefaultRetryPolicy(
60000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
RequestQueue RequestQueue=Volley.newRequestQueue(getContext());
添加(stringRequest);
..............
...................

您还可以使用
StringRequest
将POST
参数作为
JSONObject
发送

试试这个:

    private static final String KEY_Name = "NAME"
    private static final String KEY_MasterID = "MasterID"
    private static final String KEY_USERNAME = "UserName"
    private static final String KEY_OldPASSWORD = "oldPassword"
    private static final String KEY_UserPassword= "UserPassword"

    ..........
    ..................

    JSONObject params = new JSONObject();
    params.put(KEY_Name, Name);
    params.put(KEY_MasterID, master_id);
    params.put(KEY_USERNAME, username);
    params.put(KEY_OldPASSWORD, oldpassword);
    params.put(KEY_UserPassword, newpassword);

    StringRequest stringRequest = new StringRequest(Request.Method.POST, 
            Navigation_URL_SettingRequest, params, 
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    Log.i("VOLLEY", response);

                    // VolleyLog.v("Response:%n %s", response.toString(4));
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                    System.out.println("This is an Error mate");
                }
            }) 
    {
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String> headers = new HashMap<String, String>();
            // headers.put("Authorization", "Bearer " + access_token);
            // headers.put("Authorization",   access_token);
            // headers.put("Content-Type", "application/x-www-form-urlencoded");
            // headers.put("Content-Type", "application/json");
            return headers;
        }
    };

    stringRequest.setRetryPolicy(new DefaultRetryPolicy(
            60000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));


    RequestQueue requestQueue = Volley.newRequestQueue(getContext());
    requestQueue.add(stringRequest);

    ..............
    ...................
private static final String KEY\u Name=“Name”
私有静态最终字符串密钥\u MasterID=“MasterID”
私有静态最终字符串密钥\u USERNAME=“USERNAME”
私有静态最终字符串密钥\u OldPASSWORD=“OldPASSWORD”
私有静态最终字符串密钥\u UserPassword=“UserPassword”
..........
..................
JSONObject参数=新的JSONObject();
参数put(键名称、名称);
参数put(密钥主id,主id);
参数put(KEY_用户名、用户名);
参数put(KEY_OldPASSWORD,OldPASSWORD);
参数put(KEY_UserPassword,newpassword);
StringRequest StringRequest=新StringRequest(Request.Method.POST,
导航\u URL\u设置请求,参数,
新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
Log.i(“截击”,回应);
//VolleyLog.v(“响应:%n%s”,响应.toString(4));
}
},
新的Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
System.out.println(“这是一个错误匹配”);
}
}) 
{
@凌驾
公共映射getHeaders()引发AuthFailureError{
Map headers=newhashmap();
//头.put(“授权”、“承载”+访问令牌);
//headers.put(“授权”,访问令牌);
//headers.put(“内容类型”、“应用程序/x-www-form-urlencoded”);
//headers.put(“内容类型”、“应用程序/json”);
返回标题;
}
};
stringRequest.setRetryPolicy(新的DefaultRetryPolicy(
60000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
RequestQueue RequestQueue=Volley.newRequestQueue(getContext());
添加(stringRequest);
..............
...................
在后端处理JSON对象时,应将StringRequest更改为JSONObjectRequest。因此,您应该将字符串作为JSON对象传递,然后它就可以工作了。
private void makeJsonObjectRequest()抛出JSONException{
JSONObject cred=新的JSONObject();
cred.put(“username”,username.getText().toString());
cred.put(“password”,password.getText().toString());
JsonObjectRequest jsonObjReq=new
JsonObjectRequest(Request.Method.POST,
urlJsonPost,cred,new Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
Log.d(TAG,response.toString());
//后遗症:
试一试{
//解析json对象响应
//响应将是一个json对象
token=response.getString(“token”);
adminName=response.getString(“adminName”);
jsonResponse=“”;
jsonResponse+=“令牌:”+令牌;
jsonResponse+=“adminName:”+adminName;
setText(jsonResponse);
}捕获(JSONException e){
e、 printStackTrace();
Toast.makeText(getApplicationContext(),
“错误:”+e.getMes
 try {
    RequestQueue requestQueue = Volley.newRequestQueue(this);
    String URL = "http://...";
    JSONObject jsonBody = new JSONObject();
    jsonBody.put(KEY_USERNAME, username);
    jsonBody.put(KEY_OldPASSWORD, oldpassword);
    jsonBody.put(KEY_UserPassword, newpassword);
    jsonBody.put(KEY_MasterID, master_id);
    jsonBody.put(KEY_Name, Name);
    final String requestBody = jsonBody.toString();

    StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            Log.i("VOLLEY", response);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e("VOLLEY", error.toString());
        }
    }) {
        @Override
        public String getBodyContentType() {
            return "application/json; charset=utf-8";
        }

        @Override
        public byte[] getBody() throws AuthFailureError {
            try {
                return requestBody == null ? null : requestBody.getBytes("utf-8");
            } catch (UnsupportedEncodingException uee) {
                VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s", requestBody, "utf-8");
                return null;
            }
        }

        @Override
        protected Response<String> parseNetworkResponse(NetworkResponse response) {
            String responseString = "";
            if (response != null) {
                responseString = String.valueOf(response.statusCode);
                // can get more details such as response.headers
            }
            return Response.success(responseString, HttpHeaderParser.parseCacheHeaders(response));
        }
    };

    requestQueue.add(stringRequest);
} catch (JSONException e) {
    e.printStackTrace();
}
private void makeJsonSettingRequest() throws JSONException {


        username = userName.getText().toString().trim();
        oldpassword = oldPassword.getText().toString().trim();
        newpassword = newPassword.getText().toString().trim();

        StringRequest stringRequest = new StringRequest(Request.Method.POST, Navigation_URL_SettingRequest,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Log.i("VOLLEY", response);


                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                        System.out.println("This is an Error mate");


                    }
                }) {


            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String, String> headers = new HashMap<String, String>();

                headers.put(KEY_Name, Name);
                headers.put(KEY_MasterID, master_id);
                headers.put(KEY_USERNAME, username);
                headers.put(KEY_OldPASSWORD, oldpassword);
                headers.put(KEY_UserPassword, newpassword);
                return headers;
            }
        };
        RequestQueue requestQueue = Volley.newRequestQueue(getActivity());
        requestQueue.add(stringRequest);


    }
public class SettingFragment extends Fragment implements View.OnClickListener {
    EditText userName, oldPassword, newPassword;
    String Navigation_URL_SettingRequest = "http://192.168.100.5:84/api/usersApi/updateByMasterID";
    String username, oldpassword, newpassword;
    String master_id, Name, access_token;

    Button save, reset;
    public static final String KEY_Name = "NAME";
    public static final String KEY_USERNAME = "UserName";
    public static final String KEY_OldPASSWORD = "oldPassword";
    public static final String KEY_UserPassword = "UserPassword";
    public static final String KEY_MasterID = "MasterID";


    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment_setting, container, false);
        setHasOptionsMenu(true);

        userName = (EditText) view.findViewById(R.id.setting_username);
        oldPassword = (EditText) view.findViewById(R.id.setting_oldpassword);
        newPassword = (EditText) view.findViewById(R.id.setting_newpassword);
        save = (Button) view.findViewById(R.id.setting_save);
        reset = (Button) view.findViewById(R.id.setting_reset);

        SessionManagement session = new SessionManagement(getContext());
        session.checkLogin();
        access_token = session.getAccesstToken();
        master_id = session.getMasterId1();
        System.out.println(master_id);
        Name = session.getKeyName();

        save.setOnClickListener(this);
        return view;
    }


    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        // TODO Auto-generated method stub
        super.onCreateOptionsMenu(menu, inflater);
        inflater.inflate(R.menu.dashboard, menu);
    }


    private void makeJsonSettingRequest() throws JSONException {


        username = userName.getText().toString().trim();
        oldpassword = oldPassword.getText().toString().trim();
        newpassword = newPassword.getText().toString().trim();
        StringRequest stringRequest = new StringRequest(Request.Method.POST, Navigation_URL_SettingRequest,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        Log.i("VOLLEY", response);
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                        System.out.println("This is an Error mate");


                    }
                }) {


            @Override
            public Map<String, String> getHeaders() throws AuthFailureError {
                Map<String, String> headers = new HashMap<String, String>();
                // headers.put("Authorization", "Bearer " + access_token);
                //  headers.put("Authorization",   access_token);
                //  headers.put("Content-Type", "application/x-www-form-urlencoded");
                //  headers.put("Content-Type", "application/json");


                return headers;
            }

            @Override
            protected Map<String, String> getParams() {
                Map<String, String> map = new HashMap<String, String>();
                //JSONObject content = new JSONObject();

                try {
                    map.put(KEY_USERNAME, username);
                    map.put(KEY_OldPASSWORD, oldpassword);
                    map.put(KEY_UserPassword, newpassword);
                    map.put(KEY_MasterID, "s" + master_id);
                    map.put(KEY_Name, Name);
                    Log.d("Success", map.put(KEY_USERNAME, username));
                    Toast.makeText(getContext(), "", Toast.LENGTH_SHORT).show();


                } catch (Exception e) {

                    e.printStackTrace();
                }


                //map.put("access_token", accesstoken);
                //  map.put("grant_type", "password");
                return map;
            }
        };
        stringRequest.setRetryPolicy(new DefaultRetryPolicy(
                60000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));


        RequestQueue requestQueue = Volley.newRequestQueue(getContext());
        requestQueue.add(stringRequest);


    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // handle item selection
        switch (item.getItemId()) {
            case R.id.action_settings:
                // do s.th.
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }


    @Override
    public void onClick(View v) {
        try {
            makeJsonSettingRequest();
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}