How to Reuse HttpUrlConnection? [duplicate]

2019-01-12 02:13发布

问题:

This question already has an answer here:

  • Persistent HttpURLConnection in Java 3 answers

I am interested in reusing an HttpUrlConnection (as part of a statefull protocol between server and client that I'm developing). I know that there is an Connection=keep-alive header for persistent http. Now, I want to know how to reuse such a conenction. I have written this code:

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"); //

Now how do I resend this "B" header to the server, I tried re-connect etc,but nothing gets it to work.

And the server also perform response.setHeader("Connection", "keep-alive");

I've looked in many forums, but no one wrote about this. Maybe HttpURLConnection doesn't handle this?

回答1:

You don't. You close this one and create a new one. It does TCP connection pooling and keepalive behind the scenes.