HttpClient 4.1 post 继续访问 重定向,301,302 的url

在用HttpClient 4.1,用get 的时,如果有重定向,会自动再去访问重定向的内容 。
但用post访问url就不会自动 重定向的内容 。

用post访问url是地,我们经常会遇到返回301,302 返回代码,他们代表的是重定向。有两种方法让程序继续访问,
1 利用heard 取Location值重新再访问,代码如下

Java代码  收藏代码
  1. if(response.getStatusLine().getStatusCode()==302){  
  2.      Header[] hs = response.getHeaders("Location");    
  3.            if(hs.length>0){    
  4.             return sendPost(client,  hs[0].toString(), headers, params, encoding, cookie);  
  5.            }    
  6. }  



2 HttpClient实例中增加重定向策略,代码如下

Java代码  收藏代码
    1. client.setRedirectHandler(new DefaultRedirectHandler() {                  
    2.                     @Override  
    3.                     public boolean isRedirectRequested(HttpResponse response, HttpContext context) {  
    4.                         boolean isRedirect = super.isRedirectRequested(response, context);  
    5.                         if (!isRedirect) {  
    6.                             int responseCode = response.getStatusLine().getStatusCode();  
    7.                             if (responseCode == 301 || responseCode == 302) {  
    8.                                 return true;  
    9.                             }  
    10.                         }  
    11.                         return isRedirect;  
    12.                     }  
    13.                 }); 
posted @ 2015-06-07 13:09  cornucopia  阅读(972)  评论(0)    收藏  举报