HttpClient 基本操作

概念

构造http请求并发送

实现

导入依赖

xml 复制代码
<dependency>  
    <groupId>org.apache.httpcomponent</groupId>  
    <artifactId>httpclient</artifactId>
    <version>4.5.13</version>
</dependency>

发送get请求

ini 复制代码
@Test  
public void testGET() throws Exception{  
    //创建httpclient对象  
    CloseableHttpClient httpClient = HttpClients.createDefault();  

    //创建请求对象  
    HttpGet httpGet = new HttpGet("http://localhost:8080/user/shop/status");  

    //发送请求,接受响应结果  
    CloseableHttpResponse response = httpClient.execute(httpGet);  

    //获取服务端返回的状态码  
    int statusCode = response.getStatusLine().getStatusCode();  
    System.out.println("服务端返回的状态码为:" + statusCode);  

    HttpEntity entity = response.getEntity();  
    String body = EntityUtils.toString(entity);  
    System.out.println("服务端返回的数据为:" + body);  

    //关闭资源  
    response.close();  
    httpClient.close();  
}

发送post请求

ini 复制代码
/**  
* 测试通过httpclient发送POST方式的请求  
*/  
@Test  
public void testPOST() throws Exception{  
    // 创建httpclient对象  
    CloseableHttpClient httpClient = HttpClients.createDefault();  

    //创建请求对象  
    HttpPost httpPost = new HttpPost("http://localhost:8080/admin/employee/login");  

    JSONObject jsonObject = new JSONObject();  
    jsonObject.put("username","admin");  
    jsonObject.put("password","123456");  

    StringEntity entity = new StringEntity(jsonObject.toString());  
    //指定请求编码方式  
    entity.setContentEncoding("utf-8");  
    //数据格式  
    entity.setContentType("application/json");  
    httpPost.setEntity(entity);  

    //发送请求  
    CloseableHttpResponse response = httpClient.execute(httpPost);  

    //解析返回结果  
    int statusCode = response.getStatusLine().getStatusCode();  
    System.out.println("响应码为:" + statusCode);  

    HttpEntity entity1 = response.getEntity();  
    String body = EntityUtils.toString(entity1);  
    System.out.println("响应数据为:" + body);  

    //关闭资源  
    response.close();  
    httpClient.close();  
}
相关推荐
你的人类朋友2 小时前
✍️【Node.js程序员】的数据库【索引优化】指南
前端·javascript·后端
why技术6 小时前
翻译翻译,什么叫“编程专用”的显示器?
前端·后端
野生技术架构师7 小时前
SpringBoot集成Tess4j :低成本解锁OCR 图片识别能力
spring boot·后端·ocr
天天摸鱼的java工程师7 小时前
要在 Spring IoC 容器构建完毕之后执行一些逻辑,怎么实现
后端
程序猿小D7 小时前
第25节 Node.js 断言测试
后端·node.js·log4j·编辑器·vim·apache·restful
shengjk18 小时前
一文搞懂 TCP TCP/IP 和 TCP/IP网络分层之间的联系和区别
后端
述雾学java8 小时前
Spring Boot + Vue 前后端分离项目解决跨域问题详解
vue.js·spring boot·后端
酷爱码8 小时前
Spring Boot 中实现 HTTPS 加密通信及常见问题排查指南
spring boot·后端·https
寒冰碧海8 小时前
Spring Boot循环依赖全场景解析与终极解决方案
java·spring boot·后端