can't get response header location using Java's URLConnection

Perhaps Location header is returned as a part of redirect response. If so, URLConnection handles redirect automatically by issuing the second request to the pointed resource, so you need to disable it:

((HttpURLConnection) conn).setInstanceFollowRedirects(false);

EDIT: If you actually need a URL of the redirect target and don't want to disable redirect handling, you may call getURL() instead (after connection is established).