使用 HttpURLConnection 执行 POST 请求时获得 JSON 响应

get JSON response while performing POST request with HttpURLConnection

我正在使用以下代码在 REST API 上执行 POST 请求。一切正常。我无法做的是在 POST 成功后 API returns 在 body 中用 headers 响应 JSON,这个 JSON 有我需要的信息。我无法获得 JSON 响应。

我需要此响应,因为此响应包含 DB 生成的 ID。我可以在使用 Firefox 的 REST Client 插件时看到响应。需要在 Java.

中执行相同的操作

    String json = "{\"name\": \"Test by JSON 1\",\"description\": \"Test by JSON 1\",\"fields\": {\"field\": []},\"typeDefinitionId\": \"23\",\"primaryParentId\": \"26982\"}";
    String url = "http://serv23/api/contents";      
    URL obj = new URL(url);

    HttpURLConnection con = (HttpURLConnection) obj.openConnection();

    //Setting the Request Method header as POST
    con.setRequestMethod("POST");

    //Prepairing credentials
    String cred= "user123:p@ssw0rd";
    byte[] encoded = Base64.encodeBase64(cred.getBytes());           
    String credentials = new String(encoded);

    //Setting the Authorization Header as 'Basic' with the given credentials
    con.setRequestProperty  ("Authorization", "Basic " + credentials);

    //Setting the Content Type Header as application/json
    con.setRequestProperty("Content-Type", "application/json");

    //Overriding the HTTP method as as mentioned in documentation   
    con.setRequestProperty("X-HTTP-Method-Override", "POST");

    con.setDoOutput(true);

    JSONObject jsonObject = (JSONObject)new JSONParser().parse(json);

    OutputStream os = con.getOutputStream();
    os.write(jsonObject.toJSONString().getBytes());

    os.flush();
    WriteLine( con.getResponseMessage() );
    int responseCode = con.getResponseCode();

获取输入流并读取。

String json_response = "";
InputStreamReader in = new InputStreamReader(con.getInputStream());
BufferedReader br = new BufferedReader(in);
String text = "";
while ((text = br.readLine()) != null) {
  json_response += text;
}