HttpClientは3.0までと4.0以後でクラス構成などがガラリと変わった。
日本語のサイトではまだ使用例が少ないので、情報収集にも苦労する。
というわけでシンプルにGETアクセスして、結果を表示するだけのサンプルプログラムを提供しましょう!
import java.io.IOException; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; public class SimpleHttpClient { /** * @param args * @throws IOException * @throws ClientProtocolException */ public static void main(String[] args) throws ClientProtocolException, IOException { // TODO Auto-generated method stub DefaultHttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet("http://www.rutake.com/"); HttpResponse httpResponse = client.execute(httpGet); System.out.println(httpResponse.getStatusLine()); HttpEntity entity = httpResponse.getEntity(); // ContentType表示 System.out.println(entity.getContentType()); // ContentEncoding表示 System.out.println(entity.getContentEncoding()); // Content-Length表示 System.out.println(entity.getContentLength()); // エンティティを見れるのは一回きり(二回以上呼ぶならString変数に入れておく) System.out.println(EntityUtils.toString(entity)); // コネクションをクローズ entity.consumeContent(); // httpクライアントは複数リクエストを投げられる、最後は終了 client.getConnectionManager().shutdown(); } }