title: How to send JSON data in request to rest web service
body: <p>I have created a rest webservice which has a below code in one method:</p>
  
  <pre><code>@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;
      }
  }
  </code></pre>
  
  <p>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:</p>
  
  <pre><code>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";
  }
  </code></pre>
  
  <p>The problem is, I am able to call the service, but the parameter I passed in the request to service results in null.</p>
  
  <p>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.</p>