想要在我的输出中只打印正文部分而不是http标题。使用套接字编程处理Http请求

时间:2014-11-30 06:50:59

标签: java httprequest serversocket

我已经编写了一个接收http请求的服务器套接字代码并将其打印在控制台上。

以下是服务器代码。

clientSocket = echoServer.accept();
is = new DataInputStream(clientSocket.getInputStream());
while (true) 
{
    line = is.readLine();
    System.out.println(line);
}

输出结果为:

POST / HTTP/1.1

User-Agent: Java/1.6.0_20

Host: 127.0.0.1:4000

Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

Connection: keep-alive

Content-type: application/x-www-form-urlencoded

Content-Length: 7

   Hello

我不想在输出中使用标题,我怎样才能在输出中只获取Body部分" Hello"?

1 个答案:

答案 0 :(得分:1)

HTTP requests以状态行开头,后跟标题行,后跟正文。请求/标题行由单个CRLF\r\n)分隔,但正文与其他CRLF分开:

POST / HTTP/1.1
User-Agent: Java/1.6.0_20
Host: 127.0.0.1:4000
Accept: text/html, image/gif, image/jpeg, *; q=.2, /; q=.2
Connection: keep-alive
Content-type: application/x-www-form-urlencoded
Content-Length: 7

Hello

E.g。你需要寻找第一个空行。在身体开始之后。