仕事で、HttpClientが必要だったので、調べる。何をしたかったかというと、httpsのサイトにアクセスして、ページを取ってくるということ。しかも、自己署名のページだから、普通にやっても、PKIうんぬん・・・というエラーを言われる。しかし、HttpClientでEasySSLProtocolSocketFactoryを使えば、あっさり解決。
public class App { public static void main(String[] args) { Protocol easyhttps = new Protocol("https", new EasySSLProtocolSocketFactory(), 443); Protocol.registerProtocol("https", easyhttps); HttpClient client = new HttpClient(); GetMethod httpget = new GetMethod("https://ホスト名/"); try { client.executeMethod(httpget); System.out.println("TEST: contents="+httpget.getResponseBodyAsString()); } catch (HttpException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
ちなみに、EasySSLProtocolSocketFactoryは、contribにあるから、jarに入っていないみたい。