Android的GET请求,禁止重定向

禁止Android中Get请求的重定向,获得重定向后的链接URL。

/**
	 * 进行第一次网络请求,获取重定向下载APK的地址
	 * @return 
	 */
	public String getLocation() {
		String url = null;
		try {
			HttpGet get = new HttpGet(requestUrl);
			get.addHeader("Range", "bytes=0-");
			get.addHeader("User-Agent", "HalleyService/2.0");
			get.addHeader("Connection", "Keep-Alive");
			get.addHeader("Accept-Encoding", "gzip");

			// HttpResponse httpResponse = new DefaultHttpClient()
			// .execute(get);
			
			DefaultHttpClient loginClient = new DefaultHttpClient();
			RedirectHandler redirectHandler = new RedirectHandler();
			loginClient.setRedirectHandler(redirectHandler);//关闭重定向
			HttpResponse httpResponse = loginClient.execute(get);
			
			Header locationHeader = httpResponse.getFirstHeader("Location");
			url = locationHeader.getValue();
			

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return url;
	}
上述代码中的RedirectHandler类代码如下:

import org.apache.http.HttpResponse;
import org.apache.http.impl.client.DefaultRedirectHandler;
import org.apache.http.protocol.HttpContext;

public class RedirectHandler extends DefaultRedirectHandler {
	@Override
	public boolean isRedirectRequested(HttpResponse response,
			HttpContext context) {
		// TODO Auto-generated method stub
		return false;
	}
}



















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值