通过java向Spring Rest Service发送POST请求

时间:2015-09-26 10:49:26

标签: java json spring rest spring-mvc

我在Java客户端上有以下代码调用基于Spring的REST服务,我收到HTTP 400错误。但它与POST man客户端完美配合

Java客户端:

  public void getData(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");

            httpcon.setRequestProperty("Accept", "application/json");


            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){

        }

服务器端REST服务代码是

@RequestMapping(value = URIConstansts.PCAP, produces = { "application/json" }, method = RequestMethod.POST)
public  ResponseEntity getPcap(HttpServletRequest request,@RequestBody PcapParameters pcap_params )

现在,当客户端发送请求时,它给出了我的http 400错误,这可能是因为在客户端我发送JSON字符串,而在服务器端它是一个正文,但这适用于POST MAN

enter image description here

任何人都可以建议我如何通过Java发送POST请求到基于Spring的REST服务

1 个答案:

答案 0 :(得分:0)

400错误代码表示错误数据。 你可以做什么,如果你可以在http呼叫之后将日志放在服务器端。

为了更好的实施,请参阅 Http open connection to send data