我有通過HTTP到服務的套接字連接。該服務僅支持在發送響應時默認關閉連接的HTTP/1.0。有一個參數添加到此版本的協議 - 連接:保持活着 - 使其成爲可能。該標準定義服務應該將該參數附加到標題。這不會發生響應標題不包含它。Java重用套接字
當我從套接字獲取inputStream時,它不支持標記。那麼,我可以安全地假設我將無法重複使用相同的連接來發送/接收多個請求/響應?
更新 我無法控制服務,我手動構建請求。
Socket socket = new Socket("server.com", 11111);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF-8"));
writer.write("POST HTTP/1.0\r\n");
writer.write("Host: " + socket.getInetAddress().getHostName() + "\r\n");
writer.write("Content-Length: " + length + "\r\n");
writer.write("Content-Type: text/xml; charset=\"utf-8\"\r\n");
writer.write("Connection: Keep-alive\r\n");
writer.write("\r\n");
writer.write(xmldata);
writer.flush();
List<String> lines = IOUtils.readLines(socket.getInputStream());
你能告訴我們一些代碼嗎?你使用一些庫來建立你的http請求嗎? – Fildor 2013-04-24 08:24:34
你控制什麼?客戶端還是服務器或兩者?如果你對服務器沒有影響,並且它關閉了連接,那麼你就無能爲力,只需要創建新的套接字。 – JIV 2013-04-24 08:26:58