バージョン 4.2.5 を使用しています。org.apache.httpcomponentsからAutoRetryHttpClientを呼び出して、スキームがhttpsの URL から PDF ファイルをダウンロードします。コードは NetBeans 7.3 で記述され、JDK7 を使用します。
架空の pdf リソースが にあると仮定するとhttps://www.thedomain.with/my_resource.pdf
、次のコードが得られます。
SchemeRegistry registry = new SchemeRegistry();
try {
final SSLSocketFactory sf = new SSLSocketFactory(new TrustStrategy() {
@Override
public boolean isTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
return true;
}
});
registry.register(new Scheme("https", 3920, sf));
} catch (NoSuchAlgorithmException | KeyManagementException | KeyStoreException | UnrecoverableKeyException ex) {
Logger.getLogger(HttpConnection.class.getName()).log(Level.SEVERE, null, ex);
}
//Here I create the client.
HttpClient client = new AutoRetryHttpClient(new DefaultHttpClient(new PoolingClientConnectionManager(registry)),
new DefaultServiceUnavailableRetryStrategy(5, //num of max retries
100//retry interval));
HttpResponse httpResponse = null;
try {
HttpGet httpget = new HttpGet("https://www.thedomain.with/my_resource.pdf");
//I set header and Mozilla User-Agent
httpResponse = client.execute(httpget);
} catch (IOException ex) {
}
... //other lines of code to get and save the file, not really important since the code is never reached
次の例外を呼び出すとclient.execute
、スローされます
org.apache.http.conn.HttpHostConnectException: Connection to https://www.thedomain.with refused
そのpdfリソースを取得するにはどうすればよいですか?
PS: ブラウザ経由でダウンロードできるので、そのファイルを取得する方法があります。