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;
}