How to Reuse HttpUrlConnection?

user967710 picture user967710 · Apr 27, 2013 · Viewed 27.8k times · Source

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?

Answer

user207421 picture user207421 · Apr 28, 2013

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