HttpClient

内部のネットワーク環境がちょっとややこしいというのもあり、marevol.comにあるファイルをプロキシなしには取ってこれない。というわけで、HttpClient経由で取得するにもプロキシが必要になる。HttpClient 2 においては、

HttpClient httpclient = new HttpClient();
HostConfiguration hostconfig = new HostConfiguration();
hostconfig.setProxy("hostname", 8080);
httpclient.setHostConfiguration(hostconfig);

と言う感じでとってこれるようだ。でも、ドキュメントを見ていると、3.0 では、ちょっと異なるような・・・。

HttpClient

WebContentPortletでHttpClientを使っているが、エンコーディング情報を取得するためにBufferedInputStreamをかませているのだが、どうも、これで途中で情報が失われてしまう。かといって、BufferedInputStream をかませないと、resetができないので、だめだし・・・。原因の特定をするとなると、もっと時間がかかるような気もするので、getResponseBodyでバイト列を得て、そこから、ByteArrayInputStreamを作って、確実に reset できる方法で対応することにした。しかし、なぜ、途中で切れるのだろうか・・・。getResponseBodyAsStream で得た InputStream がタイムアウトか何かでコンテンツがなくなっているような感じだな・・・。