用java发送带有正文的post请求

用java发送带有正文的post请求,java,post,Java,Post,我在用java向本地服务器发送POST请求时遇到一些问题。我用Postman测试了这个本地服务器,它确实正常工作。不幸的是,当我尝试用java发送POST请求时,使用200个OK代码,一切正常,但正文中没有任何内容。这是我的代码: public static void request1() throws MalformedURLException, ProtocolException, IOException { URL url = new URL("h

我在用java向本地服务器发送POST请求时遇到一些问题。我用Postman测试了这个本地服务器,它确实正常工作。不幸的是,当我尝试用java发送POST请求时,使用200个OK代码,一切正常,但正文中没有任何内容。这是我的代码:

public static void request1() throws MalformedURLException, ProtocolException, IOException {                

    URL url = new URL("http://192.168.1.200");
    HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();

    httpCon.setDoOutput(true);
    httpCon.setRequestMethod("POST");

    OutputStream os = httpCon.getOutputStream();
    OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");       
    osw.write("Just Some Text");
    osw.flush();
    osw.close();
    os.close();  //don't forget to close the OutputStream
    httpCon.connect();  
    System.out.println(httpCon.getResponseCode());
    System.out.println(httpCon.getResponseMessage());

}
编辑:我看到你们中的一些人说这是一个重复,并给了我另一个应该解决的链接。遗憾的是,我尝试了该链接中的代码,但它不起作用。服务器只是说请求没有正文。

来自HttpUrlConnectionGetResponseMessageJavadoc:

获取随返回的HTTP响应消息(如果有) 来自服务器的响应代码。 从以下回答中: HTTP/1.0 200正常 未找到HTTP/1.0 404 提取字符串“确定”和“未找到” 分别地如果从结果无效的HTTP响应中看不出任何结果,则返回null

如果需要响应主体,则需要从HttpUrlConnection InputStream中提取它


您可以使用HttpUrlConnectiongetInputStream。

获取需要读取的实际响应体

httpCon.getInputStream()
您可以用一行这样的字符串读取数据

String responseBody = new BufferedReader(new InputStreamReader(httpCon.getInputStream())).lines().collect(
        Collectors.joining("\n"));
System.out.println(responseBody);

您的意思是看不到本地服务器响应正文?可能与