Following is my Volley POST method Call. The POST parameters does not pass the data to web server/API tried almost everything like 1. Override byte[] getBody() 2. Parameter Type 3. Using JsonRequest
Parsing four POST parameters to the server and based on this going have response. What is missing in this code??
private void generateTicket(final String field1, final String field2 , final String field3, final String field4) {
StringRequest strReq = new StringRequest(Method.POST,
AppConfig.URL_GENERATION, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
// Check for error node in json
if (!error) {
// SUCCESS CODE GOES HEAR
} else {
// Error in login. Get the error message
String errorMsg = jObj.getString("msg");
Toast.makeText(getApplicationContext(),
errorMsg, Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
// JSON error
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "API Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_LONG).show();
}
}) {
@Override
protected Map<String, String> getParams() throws com.android.volley.AuthFailureError {
// Posting parameters to the url
Map<String, String> params = new HashMap<String, String>();
params.put("tag", "generate");
params.put("field1", field1);
params.put("field2", field2);
params.put("field3", field3);
params.put("field4", field4);
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String,String> params = new HashMap<String, String>();
params.put("Content-Type","application/x-www-form-urlencoded");
// params.put("Content-Type", "application/json");
return params;
}
};
// Adding request to request queue
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
}