hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sebb <seb...@gmail.com>
Subject Re: Last redirect URL
Date Tue, 22 Sep 2009 13:04:38 GMT
On 22/09/2009, Oleg Kalnichevski <olegk@apache.org> wrote:
> On Tue, Sep 22, 2009 at 01:10:38PM +0100, sebb wrote:
>  > On 22/09/2009, Oleg Kalnichevski <olegk@apache.org> wrote:
>  > > On Mon, Sep 21, 2009 at 05:14:05PM -0700, Ken Krugler wrote:
>  > >  >
>  > >  > On Sep 21, 2009, at 2:30pm, droidin.net wrote:
>  > >  >
>  > >  >>
>  > >  >> I have rather simple HttpClient 4 code that calls HttpGet to get
HTML
>  > >  >> output.
>  > >  >> The HTML returns with scripts and image locations all set to local
>  > >  >> (e.g.
>  > >  >> /images/foo.jpg ) so I need calling URL to make these into absolute
(
>  > >  >> http://foo.com/images/foo.jpg  Now comes the problem - during the
call
>  > >  >> there
>  > >  >> may be one or two 302 redirects so the original URL is no longer
>  > >  >> reflects
>  > >  >> the location of HTML. How do I get the latest URL of the returned
>  > >  >> content
>  > >  >> given all the redirects I may (or may not) have?
>  > >  >>
>  > >  >> I looked at HttpGet#getAllHeaders() and HttpResponse#getAllHeaders()
-
>  > >  >> couldn't find anything.
>  > >  >
>  > >  > From past posts on the list, I thought httpMethod.getURI() would return
>  > >  > the final URL.
>  > >  >
>  > >  > -- Ken
>  > >  >
>  > >  >
>  > >
>  > >
>  > > Ken,
>  > >
>  > >  This is only partially correct. The original request object remains unmodified.
>  >
>  > This is a change from 3.1; perhaps needs a note in the Javadoc to say
>  > it is not affected by redirects.
>  >
>
>
> Sure. The question is where to put it.
>

I was thinking of the Javadoc for getURI() in the interface
HttpUriRequest which is inherited by the implementing class(es).

>
>  > >  So, one needs to retrieve the internal HttpUriRequest and HttpHost objects
from
>  > >  the execution context in order to find out the final request URI / target
host.
>  > >  For details see:
>  > >
>  > >  http://hc.apache.org/httpcomponents-client/tutorial/html/fundamentals.html#d4e205
>  >
>  > Note that the text talks about 'http.target_host' but the code uses:
>  >
>  > ExecutionContext.HTTP_TARGET_HOST
>  >
>  > which is presumably a constant for the value. I think this is confusing.
>  >
>  > I assume the HC4 code actually uses constants throughout, so would IMO
>  > the document should do so too.
>  >
>  > Any objections to updating the documentation accordingly?
>  >
>
>
> Certainly no objection from me, as long as the change is applied consistently
>  across the entire tutorial.

OK, I'll have a look at what is involved.

Are you OK with dropping the constant values from the docs?

>  Oleg
>
>
>  > I would prefer not to document the constant values (available via
>  > Javadoc anyway), i.e. I propose to change:
>  >
>  > * 'http.target_host':   HttpHost instance representing the connection target.
>  >
>  > to
>  >
>  > * ExecutionContext.HTTP_TARGET_HOST:   HttpHost instance representing
>  > the connection target.
>  >
>  > However, I suppose one could write:
>  >
>  > * ExecutionContext.HTTP_TARGET_HOST ('http.target_host'):   HttpHost
>  > instance representing the connection target.
>  >
>
> > ---------------------------------------------------------------------
>  > To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
>  > For additional commands, e-mail: dev-help@hc.apache.org
>  >
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
>  For additional commands, e-mail: dev-help@hc.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message