HttpClient 4.1处理重定向

网上关于用HttpClient处理重定向的文章很多,但是我测了以后,基本都不能用,因为在我这不管有没重定向,状态码全部返回200,拿到的数据都是重定向后的,就是说HttpClient自动帮我们处理了重定向,可能跟HttpClient的版本有关,我的版本是4.1。
下面是HttpClient 4.1可用的,检测重定向的方法:


		String url = "http://www.javaeye.com/";
		PostMethod postMethod = new PostMethod(url);
		//好像用GetMethod就不行,HttpClient就会自动处理重定向
		HttpClient httpClient = new HttpClient();
		httpClient.getParams().setParameter(HttpMethodParams.USER_AGENT,
				"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1");// 设置UA
		int statusCode = httpClient.executeMethod(postMethod);
		System.out.println("HTTP状态码:" + statusCode);
		if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY)
		{
			// 从头中取出转向的地址
			Header locationHeader = postMethod.getResponseHeader("location");
			String location = null;
			location = locationHeader.getValue();
			System.out.println("页面重定向到:" + location);
		}

© 2011, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记