2.使用httpclient发起post请求

首页 / 新闻资讯 / 正文

  1. post接口
//接口全路径:http://localhost:18081/hp     @PostMapping("hp")     public String hp(){         return "ss";     } 
  1. httpclient请求:
@Test     public void testHttpPost(){         try {             //1.构建http对象(相当于浏览器)             CloseableHttpClient httpClient = HttpClients.createDefault();             //3.创建http post请求对象             HttpPost post = new HttpPost("http://localhost:18081/hp");             //4.创建响应对象             CloseableHttpResponse response = httpClient.execute(post);             /**              * 由于响应接口返回的是一个字符串,因此需要转换              * 响应体数据封装在HttpEntity对象中              */             String s = EntityUtils.toString(response.getEntity(), "utf-8");             System.out.println(s);              //5.释放资源             response.close();             httpClient.close();          } catch (Exception e) {             e.printStackTrace();         }     } 

响应结果:

23:21:00.390 [main] DEBUG org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-0: set socket timeout to 0 23:21:00.390 [main] DEBUG org.apache.http.impl.conn.PoolingHttpClientConnectionManager - Connection released: [id: 0][route: {}->http://localhost:18081][total kept alive: 1; route allocated: 1 of 2; total allocated: 1 of 20] ss 23:21:00.390 [main] DEBUG org.apache.http.impl.conn.PoolingHttpClientConnectionManager - Connection manager is shutting down 23:21:00.390 [main] DEBUG org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-0: Close connection  
  1. post请求添加参数:
@Test     public void testHttpPost(){         try {             //1.构建http对象(相当于浏览器)             CloseableHttpClient httpClient = HttpClients.createDefault();             //3.创建http post请求对象             HttpPost post = new HttpPost("http://localhost:18081/hp");             /**              * 3.1添加请求参数,post请求参数是在body中              * NameValuePair:封装参数的接口              * BasicNameValuePair: 接口实现类              */             List<NameValuePair> params = new ArrayList<>();             params.add(new BasicNameValuePair("key","wjh"));              /**              * 创建httpentity接口的文本实现类对象              * 封装参数并设置编码              */             HttpEntity httpEntity = new UrlEncodedFormEntity(params,"utf-8");             post.setEntity(httpEntity);//设置参数体              //4.创建响应对象             CloseableHttpResponse response = httpClient.execute(post);             /**              * 由于响应接口返回的是一个字符串,因此需要转换              * 响应体数据封装在HttpEntity对象中              */             String s = EntityUtils.toString(response.getEntity(), "utf-8");             System.out.println(s);              //5.释放资源             response.close();             httpClient.close();          } catch (Exception e) {             e.printStackTrace();         }     } 

响应接口:

//接口全路径:http://localhost:18081/hp     @PostMapping("hp")     public String hp(String key){         return "ss" + key;     } 

post请求结果:

23:29:18.230 [main] DEBUG org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-0: set socket timeout to 0 23:29:18.230 [main] DEBUG org.apache.http.impl.conn.PoolingHttpClientConnectionManager - Connection released: [id: 0][route: {}->http://localhost:18081][total kept alive: 1; route allocated: 1 of 2; total allocated: 1 of 20] sswjh 23:29:18.230 [main] DEBUG org.apache.http.impl.conn.PoolingHttpClientConnectionManager - Connection manager is shutting down 23:29:18.230 [main] DEBUG org.apache.http.impl.conn.DefaultManagedHttpClientConnection - http-outgoing-0: Close connection