我想向服务器发送一些数据,并且该数据具有一些参数,并且具有大量的JSON。我正在尝试使用Volley
发送此数据。
出于某种原因,从未调用过getParams()
函数。
这是我的代码:
final StringRequest stringReq = new StringRequest(Request.Method.POST, API_URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (Util.IS_DEBUG_LOGGABLE) {
Log.d(TAG, "onResponse: Sent Data");
}
Toast.makeText(getContext(), R.string.config_changed, Toast.LENGTH_SHORT).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (Util.IS_DEBUG_LOGGABLE) {
Log.d(TAG, "onErrorResponse: Data Not Sent Because server could not verify");
}
Toast.makeText(getContext(), getString(R.string.msg_data_not_sent, error), Toast.LENGTH_SHORT).show();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> pars = new HashMap<>();
if (Util.IS_DEBUG_LOGGABLE) {
Log.d(TAG, "getParams: Called");
}
pars.put(PARAM1, "testf18");
pars.put(PARAM2, "Save");
return pars;
}
@Override
public byte[] getBody() throws AuthFailureError {
try {
if (Util.IS_DEBUG_LOGGABLE) {
Log.d(TAG, "getBody: Called");
}
return response.toString().getBytes("utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s", response.toString(), "utf-8");
return null;
}
}
};
RequestHelperClass.addToRequestQueue(stringReq, getContext());
请帮助。