I have created a rest webservice which has a below code in one method:
@POST
@Path("/validUser")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public JSONObject validUserLogin(@QueryParam(value="userDetails") String userDetails){
    JSONObject json = null;
    try{
        System.out.println("Service running from validUserLogin :"+userDetails);
        json = new JSONObject(userDetails);
        System.err.println("UserName : "+json.getString("userName")+" password : "+json.getString("password"));
        json.put("httpStatus","OK");
        return json;            
    }
    catch(JSONException jsonException) {
       return json;
    }
}
I am using Apache API in the client code.And below client code is calling this service, by posting some user related data to this service:
public static String getUserAvailability(String userName){
    JSONObject json=new JSONObject();
    try{
        HttpContext  context = new BasicHttpContext();
        HttpClient client = new DefaultHttpClient();
        client.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.RFC_2109);
        URI uri=new URIBuilder(BASE_URI+PATH_VALID_USER).build();
        HttpPost request = new HttpPost(uri);
        request.setHeader("Content-Type", "application/json");
        json.put("userName", userName);
        StringEntity stringEntity = new StringEntity(json.toString());
        request.setEntity(stringEntity);
        HttpResponse response = client.execute(request,context);
        System.err.println("content type : \n"+EntityUtils.toString(response.getEntity()));
    }catch(Exception exception){
        System.err.println("Client Exception: \n"+exception.getStackTrace());
    }
    return "OK";
}
The problem is, I am able to call the service, but the parameter I passed in the request to service results in null.
Am I posting the data in a wrong way in the request. Also I want to return some JSON data in the response, but I am not able to get this.
 
     
    