Httpclient 4, error 302. How to redirect?

前端 未结 7 1960
忘了有多久
忘了有多久 2020-11-27 03:03

I want to access one site that first requires an (tomcat server) authentication and then log in with a POST request and keep that user to see the site\'s pages. I use Httpcl

7条回答
  •  有刺的猬
    2020-11-27 03:40

    You have to implement custom redirection handler that will indicate that response to POST is a redirection. This can be done by overriding isRedirectRequested() method as shown below.

    DefaultHttpClient client = new DefaultHttpClient();
    client.setRedirectHandler(new DefaultRedirectHandler() {                
        @Override
        public boolean isRedirectRequested(HttpResponse response, HttpContext context) {
            boolean isRedirect = super.isRedirectRequested(response, context);
            if (!isRedirect) {
                int responseCode = response.getStatusLine().getStatusCode();
                if (responseCode == 301 || responseCode == 302) {
                    return true;
                }
            }
            return isRedirect;
        }
    });
    

    In later version of HttpClient, the class name is DefaultRedirectStrategy, but similar solution can be used there.

提交回复
热议问题