Java HTTP POST方法如何传输数据?

Java HTTP POST方法如何传输数据?,java,http,stream,Java,Http,Stream,我知道什么是HTTP头和HTTP数据格式,我还知道如何从Java制作HTTP post 像 我可以使用像这样的代码将流写入web服务器,也可以读取流 这是我的问题 HTTP POST方法真正做的是什么,我的意思是客户端如何与web服务器通信 如果web服务器只读取HTTP POST头而不从客户端读取流,会发生什么情况? 小溪会在什么地方卡住吗 谢谢。>HTTP POST方法的真正用途是什么,我的意思是客户端如何与web服务器通信?您写入out的所有内容都将包含在消息正文中。>如果web服务器只读

我知道什么是HTTP头和HTTP数据格式,我还知道如何从Java制作HTTP post

我可以使用像这样的代码将流写入web服务器,也可以读取流

这是我的问题


HTTP POST方法真正做的是什么,我的意思是客户端如何与web服务器通信

如果web服务器只读取HTTP POST头而不从客户端读取流,会发生什么情况? 小溪会在什么地方卡住吗


谢谢。

>HTTP POST方法的真正用途是什么,我的意思是客户端如何与web服务器通信?您写入
out
的所有内容都将包含在消息正文中。>如果web服务器只读取HTTP POST头而不从客户端读取流,会发生什么情况?小溪会在什么地方卡住吗?否,消息将由
out
创建,之后流应可关闭。@Smutje感谢您的回复,客户端是否在开始时发送所有内容?你的意思是,当我收到HTTP POST报头时,我同时收到了POST数据?或者客户端将首先发送标题,然后发送大正文。我猜所有内容都会立即发送,因为您可以通过命令行通过
curl
发送POST数据。正文内容使用HTTP标题发送。格式是标题,然后在消息正文后是一个空行。
StringBuffer result = new StringBuffer();
PrintWriter out = null;
BufferedReader in = null;
StringBuffer result = new StringBuffer();
try {
    URL realUrl = new URL("http://somesite/somepage.htm");
    URLConnection conn = realUrl.openConnection();
    conn.setRequestProperty("accept", "*/*");
    conn.setRequestProperty("connection", "Keep-Alive");
    conn.setRequestProperty("user-agent",
           "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
    conn.setDoOutput(true);
    conn.setDoInput(true);
    out = new PrintWriter(conn.getOutputStream());
    out.print(param);
    out.flush();
    in = new BufferedReader(
              new InputStreamReader(conn.getInputStream()));
    String line;
    while ((line = in.readLine()) != null) {
         result.append(line);
    }
} catch (Exception e) {
    e.printStackTrace();
}