超时连接代码示例:
public class TestHttpClient { public static void main(String[] args) throws IOException { final int MAX_CONN_TOTAL = 10; // 连接池中的最大连接数 final int MAX_CONN_PER_ROUTE = 10; // 连接同一个route最大的并发数 final int CONNECT_REQUEST_TIMEOUT = 100; // 从连接池中获取可用连接最大超时时间 单位:毫秒 final int CONNECT_TIMEOUT = 100; // 连接目标url最大超时 单位:毫秒 final int SOCKET_TIMEOUT = 100; // 等待响应(读数据)最大超时 单位:毫秒 final String TEST_URL = "http://www.baidu.com"; // 存在的一个url final String TEST_URL_2 = "http://www.dddddddd.com"; // 不存在的url RequestConfig requestConfig = RequestConfig.custom() .setConnectionRequestTimeout(CONNECT_REQUEST_TIMEOUT) // 单位为毫秒 .setConnectTimeout(CONNECT_TIMEOUT) .setSocketTimeout(SOCKET_TIMEOUT) .build(); HttpClient httpClient = HttpClientBuilder.create().setMaxConnTotal(MAX_CONN_TOTAL) // 连接池中的最大连接数 .setMaxConnPerRoute(MAX_CONN_PER_ROUTE) // 分配给同一个route最大的并发数 .setDefaultRequestConfig(requestConfig) .build(); HttpPost httpPost = new HttpPost(TEST_URL_2); HttpEntity entity = httpClient.execute(httpPost).getEntity(); InputStream inputStream = null; String body = ""; if (entity != null ){ inputStream = entity.getContent(); // 转换为字节输入流 BufferedReader br = new BufferedReader(new InputStreamReader(inputStream, "utf-8")); String line = ""; while ((line = br.readLine()) != null ) { body += line; } } System.out.println(body); } }