如何重用HttpUrlConnection?

use*_*710 27 java servlets http httpurlconnection

我有兴趣重用一个HttpUrlConnection(作为我正在开发的服务器和客户端之间的状态协议的一部分).我知道持久性http有一个Connection = keep-alive标头.现在,我想知道如何重用这种结合.我写了这段代码:

URL u = new java.net.URL("http://localhost:8080/Abc/Def");
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setRequestProperty("Connection", "keep-alive");
c.setHeader("A","B");
c.getInputStream() //here I see that server gets my messages (using DEBUG)
c.setHeader("B","C"); //
Run Code Online (Sandbox Code Playgroud)

现在我如何重新发送这个"B"标头到服务器,我尝试重新连接等,但没有任何东西让它工作.

而服务器也执行 response.setHeader("Connection", "keep-alive");

我看过许多论坛,但没有人写过这个.也许HttpURLConnection不处理这个?

use*_*421 44

你没有.你关闭这个并创建一个新的.它在幕后进行TCP连接池和keepalive.

  • 很棒,我甚至没有想到这可行 - 我确信这会打开另一个连接. (3认同)
  • 除非原因不明确,否则通常不是这样。 (2认同)
  • @aberglas在运行了七年的生产代码中从未见过。如果有证据,请出示。没有来源的轶事是不够的。 (2认同)