0

現在、次のような 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 パーサーがあることです。また、ソケットへのリクエストでは、適切に読み取れるように余分な空の行を指定する必要があります。これに対する解決策はありますか?

ありがとう

4

1 に答える 1

1

応答本文は、常に応答ヘッダーから1行の空白行で区切られます。独自のパーサーを作成するか、HttpCorehttp://hc.apache.org/httpcomponents-core-ga/などのライブラリを使用できます

于 2012-06-21T19:23:43.877 に答える