hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff <predato...@gmail.com>
Subject Re: HttpClient 4.1.2 and redirect handling...
Date Thu, 29 Sep 2011 16:36:13 GMT
Thanks for the responses.  Works beautifully!  Looking forward to 4.2 as
well....
On Thu, Sep 29, 2011 at 9:54 AM, Vasile Alin <alinachegalati@gmail.com>wrote:

> You can also have a look at
>
> https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient/src/main/java/org/apache/http/impl/client/LaxRedirectStrategy.java
> available starting with 4.2.
>
> On 29 September 2011 08:20, Ken Krugler <kkrugler_lists@transpac.com>
> wrote:
> > This is a topic that comes up repeatedly on the list.
> >
> > From Ryan Smith's response to the same question about a year ago:
> >
> >> Redirecting POSTs breaks RFC standards.  You need to extend and
> implement
> >> your own RedirectHandler/RedirectStrategy and tell HttpClient to use it
> >> instead of the default one.
> >
> > I see that section 5.3 in the tutorial already says "HttpClient handles
> all types of redirects automatically, except those explicitly prohibited by
> the HTTP specification as requiring user intervention". Though I don't know
> what the next bit of text on the tutorial is trying to say: "See Other
> (status code 303) redirects on POST and PUT requests..."
> >
> > There's some code at Stack Overflow (first hit on
> http://lmgtfy.com/?q=httpclient+4+doesn%27t+redirect+post) that might be
> useful.
> >
> >
> http://stackoverflow.com/questions/3658721/httpclient-4-error-302-how-to-redirect
> >
> > -- Ken
> >
> > On Sep 28, 2011, at 8:54pm, Jeff wrote:
> >
> >> Being new to the v4.x HttpClient (and rusty with older versions...ack),
> this
> >> may be something obvious that I've just missed.
> >>
> >> The tutorial (section 5.3) states that HttpClient handles most redirect
> >> automatically.  I have the following set:
> >>
> >>
> >>
> httpclient.getParams().setBooleanParameter(ClientPNames.HANDLE_REDIRECTS,
> >> true);
> >>
> >>
> httpclient.getParams().setBooleanParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS,
> >> true);
> >>
> >> I create the HttpPost for the form POST which seems to be working:
> >>
> >>      post = new HttpPost(baseUrl + "/userLoginManual.aspx");
> >>
> >>      List<NameValuePair> formparams = new ArrayList<NameValuePair>();
> >>      formparams.add(new BasicNameValuePair("postlogin_path",
> >> "/offers/consent.aspx"));
> >>      formparams.add(new BasicNameValuePair("login", username));
> >>      formparams.add(new BasicNameValuePair("password", password));
> >>      UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams,
> >> "UTF-8");
> >>      post.setEntity(entity);
> >>
> >>      response = httpclient.execute(post, localContext);
> >>
> >>      code = response.getStatusLine().getStatusCode();
> >>
> >> But the response is "302 - Moved Temporarily".  This is part of the
> normal
> >> process, but I would have expected HttpClient to handle it and return me
> a
> >> 200.
> >>
> >> Since I really only needed the cookies returned after successful auth, I
> am
> >> doing :
> >>
> >>      try {
> >>        respStr = responseHandler.handleResponse(response);
> >>      } catch (HttpResponseException hrex) {
> >>        post.abort();
> >>      }
> >> in order to consume the response which is throwing the
> HttpResponseException
> >> (due to the 302) and calling post.abort().  This works for me, but I
> >> wondered why the redirect isn't happening automagically.
> >>
> >> Any light/knowledge/insight is much appreciated.
> >>
> >> --
> >> Jeff Vincent
> >> predatorvi@gmail.com
> >> See my LinkedIn profile at:
> >> http://www.linkedin.com/in/rjeffreyvincent
> >> I ♥ DropBox <http://db.tt/9O6LfBX> !!
> >
> > --------------------------
> > Ken Krugler
> > +1 530-210-6378
> > http://bixolabs.com
> > custom big data solutions & training
> > Hadoop, Cascading, Mahout & Solr
> >
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> For additional commands, e-mail: httpclient-users-help@hc.apache.org
>
>


-- 
Jeff Vincent
predatorvi@gmail.com
See my LinkedIn profile at:
http://www.linkedin.com/in/rjeffreyvincent
I ♥ DropBox <http://db.tt/9O6LfBX> !!

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message