302重定向
重定向的目的url写在header的Location属性。
httpclient以GET发送请求时,http的返回码是200,自动处理了重定向;
以POST发送请求时,http的返回码是302,不自动处理重定向,处于占用连接等待状态。
HttpPost request=new HttpPost(url);
HttpResponse response=httpclient.execute(request);
//释放post请求
request.abort();
if(response.getStatusLine().getStatusCode()==302)
{
String location=response.getLastHeader("Location").getValue();
}
java中的httpclient有两种,一个是commons-httpclient,为遗留版本不推荐使用;另一个是httpclient项目的httpcore-x.xxx.jar。
httpclient使用
HttpEntity entity=response.getEntity();
//将字节流保存在一个byte数组中
byte[] bytes=EntityUtils.toByteArray(entity);
//获取Content-Type编码信息
String charset=EntityUtils.getContentCharSet(entity);