首页 > 解决方案 > 在错误请求的情况下缺少 java rest 调用响应主体

问题描述

我正在使用任何其他客户端点击下面的 url,我得到了 api Response :400 Bad Request with response body

输入参数

POST http://SOME.IP:8008/equipment_api/F0-03-8C-C3-D3-CC/832
HEADERS
Content-Type application/json
X-RequestID 1234

BODY
{
"items":[{"updateValue":1, "updateKey": "RESETDEV"}],
"sync":"false"
}

Response :400 Bad Request
{
"error": "RESETDEV is not a valid key."
}

但是java简单客户端没有显示响应体..下面是java代码..它只是给出400个坏请求。

 public static void main(String[] args) {
    try {           
        String urlParameters = "  {\r\n" + 
                "\"items\":[{\"updateValue\":\"Hi\", \"updateKey\": \"RESETDEV\"}],\r\n" + 
                "\"sync\":false\r\n" + 
                "}";
        URL url = new URL("http://SOME.IP:8008/equipment_api/F0-03-8C-C3-D3-CC/832");
        URLConnection conn = url.openConnection();
        conn.setRequestProperty("content-type", "application/json");
        conn.setRequestProperty("X-RequestID", "1234");         
        conn.setDoOutput(true);
        OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());         
        writer.write(urlParameters);
        writer.flush();         
        String line;
        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));

        while ((line = reader.readLine()) != null) {                
            System.out.println(line);
        }           
        writer.close();
        reader.close();         
    }catch(Exception ex) {          
        System.out.println("some error :: "+ex.toString());         
    }       
}

标签: javarest

解决方案


愿它对你有用。它会工作

      public static void main(String[] args) {
        try {           
             String urlParameters = "  {\r\n" + 
                "\"items\":[{\"updateValue\":\"Hi\", \"updateKey\": 
              \"RESETDEV\"}],\r\n" + 
                "\"sync\":false\r\n" + 
                "}";
         URL url = new URL("http:http://SOME.IP:8008/equipment_api/F0-03- 
        8C-C3-D3-CC/832");
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        con.setRequestProperty("content-type", "application/json");
        con.setRequestProperty("X-RequestID", "1234");         
        con.setDoOutput(true);
        OutputStreamWriter writer = new 
        OutputStreamWriter(con.getOutputStream());         
        writer.write(urlParameters);
        writer.flush();         
        String line;

        //BufferedReader reader = new BufferedReader(new 
        InputStreamReader(con.getInputStream()));

        InputStream is = con.getInputStream();
        if(con.getResponseCode() >= 200 && 299 <= con.getResponseCode()) {
            is = con.getInputStream();
        }else {
            is = con.getErrorStream();
        }

        try (BufferedReader br = new BufferedReader(new InputStreamReader(is, 
       "utf-8"))) {
              while ((line = br.readLine()) != null) {                
                System.out.println(line);
            }     
        }

        writer.close();
       // br.close();         
    }catch(Exception ex) {          
        System.out.println("some error :: "+ex.toString());         
    }  
  } 

推荐阅读