昨天在cnBeta上看到一篇关于解析Baidu搜索结果url的文章(http://www.cnbeta.com/articles/206465.htm),遂决定自己也实现一下。
之前从来没碰到过302错误,仅仅尝试用httpclient获取总是找不到跳转信息,后找到如下方法,事实证明用post方法获取比较靠谱。get方法还是会自动跳转。
httpclient3.1版本中get方法设置重定向更简单,找了半天才发现:
getMethod.setFollowRedirects(false);
httpclient4.0版本中,使用get请求时,遇到302会自动跳转,如果需要得到302中location的信息,
可以用post方法去请求或者把get自动处理重定向禁掉。
要禁用get方法自动处理重定向,需要设一下参数:
HttpClient httpclient = new DefaultHttpClient();
HttpParams params = httpclient.getParams();
params.setParameter(ClientPNames.HANDLE_REDIRECTS, false);
httpclient4.3版本中,需要将
RequestConfig的setRedirectsEnabled(false)设置一下即可。