最終ページをダウンロードできるかどうかを確認するために、いくつかの短い URL のリダイレクト URL を取得する必要があります。HttpHead は、最終的な宛先 URL を取得するために使用されます (以下のコードを参照)。
HttpClient client = HttpClientBuilder.create().build();
HttpHead httpHead = new HttpHead("http://bit.ly/1DfSWSs");
HttpClientContext context = HttpClientContext.create();
client.execute(httpHead, context);
List<URI> redirectLocations = context.getRedirectLocations();
if (redirectLocations != null && !redirectLocations.isEmpty()) {
for (URI redirectURI : redirectLocations) {
//TODO print all
}
}
コード内の URL の例に問題があります。リダイレクト URL にスペースが含まれているため、URI を作成できません。
getRedirectLocations メソッドを呼び出す前に URI オブジェクトをエンコードする方法はありますか?