HttpClient发送http本地测试代码

来源:互联网 发布:java读取log日志文件 编辑:程序博客网 时间:2024/06/13 10:19

本地测试的httpclient

package ****.httpclient;import java.io.IOException;import java.security.NoSuchAlgorithmException;import javax.net.ssl.SSLContext;import org.apache.http.HttpEntity;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.config.Registry;import org.apache.http.config.RegistryBuilder;import org.apache.http.conn.socket.ConnectionSocketFactory;import org.apache.http.conn.socket.LayeredConnectionSocketFactory;import org.apache.http.conn.socket.PlainConnectionSocketFactory;import org.apache.http.conn.ssl.SSLConnectionSocketFactory;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;import org.apache.http.util.EntityUtils;public class HttpConnectionManager {    private static PoolingHttpClientConnectionManager cm;    static {        LayeredConnectionSocketFactory sslsf = null;        try {            sslsf = new SSLConnectionSocketFactory(SSLContext.getDefault());        } catch (NoSuchAlgorithmException e) {            e.printStackTrace();        }        Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory> create()                .register("https", sslsf)                .register("http", new PlainConnectionSocketFactory())                .build();        cm =new PoolingHttpClientConnectionManager(socketFactoryRegistry);        cm.setMaxTotal(200);        cm.setDefaultMaxPerRoute(20);    }    public static CloseableHttpClient getHttpClient() {        CloseableHttpClient httpClient = HttpClients.custom()                .setConnectionManager(cm)                .build();        /*CloseableHttpClient httpClient = HttpClients.createDefault();//如果不采用连接池就是这种方式获取连接*/        return httpClient;    }    /**      * 发送 get请求      * @param httpUrl      * @throws IOException      * @throws ClientProtocolException      */      public static String sendHttpGet(String httpUrl) throws ClientProtocolException, IOException {          HttpGet httpGet = new HttpGet(httpUrl);// 创建get请求          return sendHttpGet(httpGet);      }      /**      * 发送Get请求      * @param httpPost      * @return      * @throws IOException      * @throws ClientProtocolException      */      private static String sendHttpGet(HttpGet httpGet) throws ClientProtocolException, IOException {          CloseableHttpClient httpClient = getHttpClient();        CloseableHttpResponse response=null;         HttpEntity entity = null;          String responseContent = null;          // 执行请求          response = httpClient.execute(httpGet);          entity = response.getEntity();          responseContent = EntityUtils.toString(entity, "UTF-8");          return responseContent;      }     public static void main(String[] args) throws ClientProtocolException, IOException {         System.out.println(sendHttpGet("http://192.168.*.*:8081/flights?airline=detla"));    }}
0 0