1.:由 apache 推出的实现使用 java 代码完成请求/响应的一套 API
2:实现效果:模拟浏览器发送请求及解析响应内容
3.:常用类
CloseableHttpClient :负责发送请求和接收响应.相当于浏览器 HttpPost:Post请求对象,所有请求信息都放入到这个对象中 HttpGet:get请求对象,所有请求信息都放入到这个对象中 CloseableHttpResponse:响应对象,所有响应信息放入到这个类 EntityUtils:工具类,解析响应体2.1:不带参数
public void doGet() throws Exception { //创建一个httpclient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); //创建一个GET对象 HttpGet get = new HttpGet("http://www.sogou.com"); //执行请求 CloseableHttpResponse response = httpClient.execute(get); //取响应的结果 int statusCode = response.getStatusLine().getStatusCode(); System.out.println(statusCode); HttpEntity entity = response.getEntity(); String string = EntityUtils.toString(entity, "utf-8"); System.out.println(string); //关闭httpclient response.close(); httpClient.close(); }2.2:带参数
public void doGetWithParam() throws Exception{ //创建一个httpclient对象 CloseableHttpClient httpClient = HttpClients.createDefault(); //创建一个uri对象 URIBuilder uriBuilder = new URIBuilder("http://www.sogou.com/web"); uriBuilder.addParameter("query", "花千骨"); HttpGet get = new HttpGet(uriBuilder.build()); //执行请求 CloseableHttpResponse response = httpClient.execute(get); //取响应的结果 int statusCode = response.getStatusLine().getStatusCode(); System.out.println(statusCode); HttpEntity entity = response.getEntity(); String string = EntityUtils.toString(entity, "utf-8"); System.out.println(string); //关闭httpclient response.close(); httpClient.close(); }3.1:不带参数
public void doPost() throws Exception { CloseableHttpClient httpClient = HttpClients.createDefault(); //创建一个post对象 HttpPost post = new HttpPost("http://localhost:8082/httpclient/post.html"); //执行post请求 CloseableHttpResponse response = httpClient.execute(post); String string = EntityUtils.toString(response.getEntity()); System.out.println(string); response.close(); httpClient.close(); }3.2:带参数
public void doPostWithParam() throws Exception{ CloseableHttpClient httpClient = HttpClients.createDefault(); //创建一个post对象 HttpPost post = new HttpPost("http://localhost:8082/httpclient/post.html"); //创建一个Entity。模拟一个表单 List<NameValuePair> kvList = new ArrayList<>(); kvList.add(new BasicNameValuePair("username", "zhangsan")); kvList.add(new BasicNameValuePair("password", "123")); //包装成一个Entity对象 StringEntity entity = new UrlEncodedFormEntity(kvList, "utf-8"); //设置请求的内容 post.setEntity(entity); //执行post请求 CloseableHttpResponse response = httpClient.execute(post); String string = EntityUtils.toString(response.getEntity()); System.out.println(string); response.close(); httpClient.close(); }