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();  
}
相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰4 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
爱勇宝4 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
胡写代码4 天前
别再前后端各写一套表单校验了
java·后端
大勇前进4 天前
原生 PHP 还是 Laravel?小项目到底要不要上框架
后端
yuzhi_liu4 天前
我用 LangGraph4j 实现 Multi-Agent Supervisor
后端
alsmile4 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go
大白804 天前
PHP 内存溢出排查思路:看懂报错日志,精准定位问题
后端
二月龙4 天前
PHP 接口返回统一响应封装,让前后端对接更省心
后端
盖伦发发4 天前
软件工程SOLID 五大设计原则
后端·软件工程