我目前正在使用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解析器。在我对套接字的请求中,我需要给出一个额外的空行以允许它被正确读取。有解决方案吗?
由于
答案 0 :(得分:1)
响应正文始终与响应标题分隔一个空行。您可以编写自己的解析器,也可以使用像HttpCore http://hc.apache.org/httpcomponents-core-ga/
这样的库