使用BufferedReader读取时忽略HTTP Post请求标头

时间:2012-06-21 19:11:49

标签: java http

我目前正在使用BufferedReader监听端口,如:

ServerSocket ss = new ServerSocket(2346);

Socket s = ss.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
while(true){
    inputLine = in.readLine();
    if(inputLine==null)
       break;
}

现在我收到所有标题和所有内容,如:

POST /record HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
Content-Length: 1969
Host: localhost:2346
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope">...

问题是我只需要POST请求的内容(上面的最后一行),所以是否有可以执行此操作的Java解析器。在我对套接字的请求中,我需要给出一个额外的空行以允许它被正确读取。有解决方案吗?

由于

1 个答案:

答案 0 :(得分:1)

响应正文始终与响应标题分隔一个空行。您可以编写自己的解析器,也可以使用像HttpCore http://hc.apache.org/httpcomponents-core-ga/

这样的库