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();
}
}