views:

109

answers:

1

Hi all,
can someone kindly suggest what I'm doing wrong here?
I'm trying to get the header location for a certain URL using java here is my code:

URLConnection conn = url.openConnection();
String location = conn.getHeaderField("Location");  

it's strange since I know for sure the URL i'm refering to return a Location header and using methods like getContentType() or getContentLength() works perfectly

your advices are much appreciated as always :)

Thanks

+5  A: 

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).

axtavt
like a charm :)
Yaniv
Great! A valuable addition to my little knowledge base. +1
Adeel Ansari
@axtavt re your edit: that's even more elegant! thanks
Yaniv