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();  
}
相关推荐
小Ti客栈6 小时前
Spring Boot 集成 Springdoc-OpenAPI 与 Knife4j实现接口文档与可视化调试
java·spring boot·后端
Ai拆代码的曹操7 小时前
Spring 事务 REQUIRES_NEW 嵌套调用:连接池翻倍的秘密
java·后端·spring
IT_陈寒9 小时前
SpringBoot这个分页坑,我踩了三天才爬出来
前端·人工智能·后端
颜酱9 小时前
05 | 召回前置准备:根据业务数据库生成各数据库(读取配置阶段)
前端·人工智能·后端
Wang's Blog9 小时前
Go-Zero项目开发24: 基于Bitmap实现群聊消息已读未读
开发语言·后端·golang
Conan在掘金10 小时前
鸿蒙报错速查:struct 里嵌 namespace 声明就炸,根因 + 真解法
后端
东方小月10 小时前
从零开发一个 Coding Agent(三):EventStream 事件流通道设计与实现
前端·人工智能·后端
卫子miao10 小时前
如何评价当前大语言模型的记忆机制?
后端·架构
神奇小汤圆10 小时前
为什么 AQS 成为 Java 并发的基石?
后端
星栈11 小时前
MCP 从 stdio 迁到 SSE,踩了 5 个传输层坑
人工智能·后端·架构