Apache HttpComponentsとは
HTTPクライアントとして動作し、Webサーバからコンテンツの取得や投稿などを行える
サンプル
GETメソッド実行
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.net.ssl.SSLContext;
import org.apache.http.client.CookieStore;
import org.apache.http.client.config.CookieSpecs;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.config.Registry;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.HttpConnectionFactory;
import org.apache.http.conn.ManagedHttpClientConnection;
import org.apache.http.conn.routing.HttpRoute;
import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.DefaultHttpResponseParserFactory;
import org.apache.http.impl.conn.ManagedHttpClientConnectionFactory;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.impl.io.DefaultHttpRequestWriterFactory;
import org.apache.http.ssl.SSLContexts;
public class HttpGetTest
{
public static void main(String[] args) throws IOException
{
HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> connFactory = new ManagedHttpClientConnectionFactory(
new DefaultHttpRequestWriterFactory(), new DefaultHttpResponseParserFactory());
SSLContext sslcontext = SSLContexts.createSystemDefault();
Registry socketFactoryRegistry = RegistryBuilder. create()
.register("http", PlainConnectionSocketFactory.INSTANCE)
.register("https", new SSLConnectionSocketFactory(sslcontext))
.build();
PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(
socketFactoryRegistry, connFactory);
CookieStore cookieStore = new BasicCookieStore();
RequestConfig requestConfig = RequestConfig.custom()
// .setSocketTimeout(5000)
// .setConnectTimeout(5000)
// .setConnectionRequestTimeout(5000)
.setCookieSpec(CookieSpecs.STANDARD)
.setExpectContinueEnabled(true)
.build();
try(CloseableHttpClient httpclient = HttpClients.custom()
.setConnectionManager(connManager)
.setDefaultRequestConfig(requestConfig)
.build())
{
HttpGet httpget = new HttpGet("https://www.google.co.jp/");
httpget.setConfig(requestConfig);
// httpget.setHeader("User-Agent", UA);
HttpClientContext context = HttpClientContext.create();
context.setCookieStore(cookieStore);
try(CloseableHttpResponse response = httpclient.execute(httpget, context))
{
if(response.getStatusLine().getStatusCode()==200)
{
BufferedReader reader = new BufferedReader(
new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
String next = null;
while((next=reader.readLine())!=null)
{
System.out.println(next);
}
}
else
{
System.out.println("Error : "+response.getStatusLine().getReasonPhrase());
}
}
}
}
}