title: How can I send json object in http post in java
body: <p>I want to send a JSON object(Note it should not be converted into a string as the server side code is based on the Spring starter project and has params as (@RequestBody PCAP pcap) )I have my below code but it converts the body into a string which gives me 400 bad request .</p>
  
  <pre><code>private void sendData(String ip){
      try{
          JSONObject json=new JSONObject();
          json.put("time_range", "22-23");
          json.put("flow_id", "786");
          json.put("ip_a", "192.65.78.22");
          json.put("port_a", "8080");
          json.put("regex", "%ab");
  
  
  
          URL url=new URL("http://"+ip+":8080/pcap");
          HttpURLConnection httpcon=(HttpURLConnection)url.openConnection();
          httpcon.setDoOutput(true);
          httpcon.setRequestMethod("POST");
          httpcon.setRequestProperty("Accept", "application/json");
          httpcon.setRequestProperty("Content-Type", "application/json");
          Cookie cookie=new Cookie("user", "abc");
          cookie.setValue("store");
          httpcon.setRequestProperty("Accept", "application/json");
          httpcon.setRequestProperty("Cookie", cookie.getValue());
  
          OutputStreamWriter output=new OutputStreamWriter(httpcon.getOutputStream());
          System.out.println(json);
          output.write(json.toString());
          httpcon.connect();
          String output1=httpcon.getResponseMessage();
          System.out.println(output1);
  
      }catch(Exception e){
  
      }
  
  }
  </code></pre>
  
  <p>Note: Server side code is </p>
  
  <pre><code>@RequestMapping(value = URIConstansts.PCAP, produces = { "application/json" }, method = RequestMethod.POST)
      public  ResponseEntity getPcap(HttpServletRequest request,@RequestBody PcapParameters pcap_params )
  </code></pre>