一 概述
1.HttpComponents的作用
HttpComponents的作用是模拟浏览器获取网页内容。
二 使用
1.使用HttpComponents需要先导入架包。
2.使用
CloseableHttpClient client = HttpClients.createDefault();// 创建一个客户端对象 HttpGet httpGet = new HttpGet("http://www.ifeng.com/");// 请求对象 // 设置具体信息,使请求模拟浏览器 httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:53.0) Gecko/20100101 Firefox/53.0"); // 使用代理IP,因为长时间从一个网站抓取内容,IP可能被禁掉,因此采用高匿代理,使网站无法发现访问者使用的是代理与IP HttpHost proxy = new HttpHost("116.226.90.12", 808); // 自定义请求,比如连接超时、响应超时、代理 RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(10000).setSocketTimeout(10000) .setProxy(proxy).build(); httpGet.setConfig(requestConfig); CloseableHttpResponse response = client.execute(httpGet);// 客户端执行请求,获得响应对象 HttpEntity entity = response.getEntity();// 获取响应体 String responseBody = EntityUtils.toString(entity);// 将响应体对象转化为字符串 InputStream is = entity.getContent(); File destination = new File("Files", "content.txt"); FileUtils.copyToFile(is, destination);