Как я вижу, вы вызываете getParams () вне StringRequest:
getparams();
mQueue.add(stringRequest);
Вместо этого вам нужно переопределить его в области видимости StringRequest, например:
StringRequest stringRequest = new StringRequest(Request.Method.PUT, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
//Response
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//Error
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("NotesID", corusername); //NotesID
params.put("Password", renewpass);
return params;
}
@Override
public HashMap<String, String> getHeaders() {
HashMap headers = new HashMap();
headers.put("Content-Type", "application/json");
return headers;
}
};
//Add request to volley request queue
VolleyRequestQueue.getInstance().addToRequestQueue(stringRequest);
Также HTTP 400 может быть из-за неправильной установки заголовков Content-Type. Поэтому вы должны установить заголовки в переопределенном методе StringRequest, например:
@Override
public HashMap<String, String> getHeaders() {
HashMap headers = new HashMap();
headers.put("Content-Type", "application/json");
return headers;
}
Также, чтобы правильно связать JSON с вашим действием, вы изменили свое действие, добавив в параметр атрибут [FromBody]. Таким образом, вы должны определить в своем запросе правильные заголовки:
contentType:"application/json"
//or
headers.put("Content-Type", "application/json");
Также сначала проверьте ваш запрос PUT в Почтальоне.