httpclient4.3获取redirect 真实链接

httpclient4.3 直接获取302,301跳转后的真实链接。
/**
	 * 获取真实链接
	 * 
	 * @param url
	 * @return
	 * @throws IOException
	 * @throws ClientProtocolException
	 */
	private String getRealUrl(String url) throws IOException {
		CloseableHttpClient httpclient = HttpClients.createDefault();
		HttpGet httpget = new HttpGet(url);
		HttpContext localContext = new BasicHttpContext();
		CloseableHttpResponse response = httpclient.execute(httpget, localContext);
		try {
			int status = response.getStatusLine().getStatusCode();
			if (status == 404) {
				HttpHost target = (HttpHost) localContext.getAttribute(ExecutionContext.HTTP_TARGET_HOST);
				HttpUriRequest req = (HttpUriRequest) localContext.getAttribute(ExecutionContext.HTTP_REQUEST);
				return target.toString() + req.getURI();
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			response.close();
		}
		return null;
	}

你可能感兴趣的:(java,httpclient)