SpringBoot 项目 使用hutool 工具进行 http 接口调用

4,415 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情

写作目的

在实际的开发过程中一个互联网的项目来说 ,有可能会涉及到调用外部接口的实际业务场景,原生的比如使用httpclient 也能够达到自己想要的结果处理 ,但是其实在实际开发的时候如果没有使用过类似的技术处理的话或多祸首可能会遇见问题所以这里我简单记录一下今天使用到的工具类: hutool 进行接口http 请求调用处理。

hutool简单介绍

关于hutool工具包其实本人使用的不多哈 ,这里面其实封装处理了大量的开发日常小工具方法:

  • 时间格式化,时间转换,时间校验

  • http 接口调用

  • 字符串格式化处理

  • 国标加密.... 对于一个稍微大型的项目来说是一个很好用的封装工具包('宝藏男孩'),更多的好东西需要大家去探索

image.png

实践

这里说明一下hutool封装了httpclient 也是能使用的但是它高度封装了,所以我使用的是

HttpRequest

灵活性更高!!!

引用依赖

<!-- hutool 工具包 -->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.7.7</version>
</dependency>
<!--       测试类-->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
</dependency>

post

简单接口调用

@Test
public void huToolPost() {
    System.out.println("--------------------------------post请求-----------------------------------");
    HashMap<String, String> paramMaps = new HashMap<>(4);
    paramMaps.put("pid", "463669875660294144");
    paramMaps.put("mobile", "123456.");
    paramMaps.put("name", "123456.");
    paramMaps.put("message", "");
    HttpResponse response = HttpRequest.post("http://192.168.99.202:8202/thySystem/pg-biz-sae/app/opinion/add")
            .header("Content-Type", "application/json")
            .header("token", "710515329923024896")
            .header("kong-request-id", "710515329923024896")
            .body(JSON.toJSONString(paramMaps))
            .execute();

    int status = response.getStatus();
    System.out.println("请求响应状态码:" + status);
    String body = response.body();
    System.out.println(body);
    JSONObject jsonObject = JSONObject.parseObject(body);
    Object msg = jsonObject.get("msg");
    System.out.println(msg);
    Object code = jsonObject.get("code");
    System.out.println(code);

}

文件上传

/**
 * 文件上传测试
 */
@Test
public void huToolUploadFile(){
    File f1 = new File("C:\Users\12043\Desktop\cat.jpeg");
    File f2 = new File("C:\Users\12043\Desktop\cat.jpeg");
    File[] files = new File[2];
    files[0] = f1;
    files[1] = f2;
    HttpResponse response = HttpRequest.post("url")
            .form("param", "test")
            .form("key", files)
            .execute();
}

get 请求

@Test
public void huToolGet(){
    System.out.println("--------------------------------get请求-----------------------------------");
    HashMap<String, Object> getParamMaps = new HashMap<>(5);
    getParamMaps.put("sortStr", "recordFlag,baseInfo.createTime");
    getParamMaps.put("sortDirection", "ASC");
    getParamMaps.put("filterStr", "flowAbleInfo.nodeId==craCheck");
    getParamMaps.put("pageSize", 10);
    getParamMaps.put("pageNo", 0);
    HttpResponse getResponse = HttpRequest.get("http://192.168.99.202:8202/thySystem/pg-biz-sae/sae/list")
            .header("Content-Type", "application/json")
            .header("token", "710515329923024896")
            .header("kong-request-id", "710515329923024896").form(getParamMaps).execute();

    int status1 = getResponse.getStatus();
    System.out.println("请求响应状态码:" + status1);
    String body1 = getResponse.body();
    System.out.println(body1);
    JSONObject jsonObject1 = JSONObject.parseObject(body1);
    Object msg1 = jsonObject1.get("msg");
    System.out.println(msg1);
    Object code1 = jsonObject1.get("code");
    System.out.println(code1);
}

end

今天拖到很晚才写完这个,帮一个同事对接一个系统的短信集成推送平台刚好涉及国密3加密然后就使用hutool的http请求处理数据内容了。