Hutool工具包

Hutool官方文档
Hutool使用总结
HutoolAPI文档

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;

导入maven全量包

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.2</version>
</dependency>

一、数字工具NumberUtil

示例:

public static void main(String[] args) {
    // 加
    double add = NumberUtil.add(25, 6);
    // 减
    double sub = NumberUtil.sub(25, 6);
    // 乘
    double mul = NumberUtil.mul(25, 6);
    // 除
    double div = NumberUtil.div(25, 6);
    System.out.println(add);
    System.out.println(sub);
    System.out.println(mul);
    System.out.println(div);
    // 保留两位小数
    System.out.println(NumberUtil.round(div, 2));
    System.out.println(NumberUtil.roundStr(div, 2));

    /**
     *
     * 0 -> 取一位整数
     * 0.00 -> 取一位整数和两位小数
     * 00.000 -> 取两位整数和三位小数
     * # -> 取所有整数部分
     * #.##% -> 以百分比方式计数,并取两位小数
     * #.#####E0 -> 显示为科学计数法,并取五位小数
     * ,### -> 每三位以逗号进行分隔,例如:299,792,458
     * 光速大小为每秒,###米 -> 将格式嵌入文本
     **/
    String format1 = NumberUtil.decimalFormat("0.00", 8.5967D);// 8.60
    System.out.println(format1);
    String format2 = NumberUtil.decimalFormat("#.##%", 0.279D);// 27.9%
    System.out.println(format2);
    String format3 = NumberUtil.decimalFormat(",###", 299792458L);// 299,792,458
    System.out.println(format3);
    String format4 = NumberUtil.decimalFormat("光速大小为每秒,###米", 299792458L);// 光速大小为每秒299,792,458米
    System.out.println(format4);
}

二、http工具Hutool-http

常用的API方法如下:

  1. HttpUtil:get请求、post请求、文件上传下载(设置不了请求头、代理等信息)
// GET请求例子----------------------------------------------------------------

// 最简单的HTTP请求,可以自动通过header等信息判断编码,不区分HTTP和HTTPS
String result1= HttpUtil.get("https://www.baidu.com");
// 当无法识别页面编码的时候,可以自定义请求页面的编码
String result2= HttpUtil.get("https://www.baidu.com", CharsetUtil.CHARSET_UTF_8);
//可以单独传入http参数,这样参数会自动做URL编码,拼接在URL中
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("city", "北京");
String result3= HttpUtil.get("https://www.baidu.com", paramMap);

// POST请求例子----------------------------------------------------------------
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("city", "北京");
String result= HttpUtil.post("https://www.baidu.com", paramMap);

// 文件上传--------------------------------------------------------------------
//获取桌面地址
FileSystemView fsv = FileSystemView.getFileSystemView();
File file = fsv.getHomeDirectory();
String deskPath = file.getPath();
HashMap<String, Object> paramMap = new HashMap<>();
//文件上传只需将参数中的键指定(默认file),值设为文件对象即可,对于使用者来说,文件上传与普通表单提交并无区别
paramMap.put("file", FileUtil.file(deskPath + "\\face.jpg"));
String result= HttpUtil.post("https://www.baidu.com", paramMap);

// 文件下载--------------------------------------------------------------------
//获取桌面地址
FileSystemView fsv = FileSystemView.getFileSystemView();
File file = fsv.getHomeDirectory();
String deskPath = file.getPath();
// 下载文件,提供生命周期钩子
HttpUtil.downloadFile("https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png", FileUtil.file(deskPath), new StreamProgress() {
    @Override
    public void start() {
        System.out.println("开始下载");
    }
    @Override
    public void progress(long progressSize) {
        System.out.println("下载中,已下载" + FileUtil.readableFileSize(progressSize));
    }
    @Override
    public void finish() {
        System.out.println("下载完成");
    }
});

2.HttpRequest:get请求、post请求(链式构建请求)

// GET请求例子----------------------------------------------------------------
// 设置url参数,会自动拼到url后面
Map<String,Object> paramMap = new HashMap<>(3);
paramMap.put("latnId","551");
paramMap.put("serviceNbr","15305514582");
// 设置请求头参数
Map<String, List<String>> headMap = new HashMap<>(3);
List<String> list = new ArrayList<>(1);
list.add("eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjJmYzk0ZmViLTc5ZDUtNDhmYy1iNGNiLWQ5M2IyM2EyNzk2MiJ9.NoLKfICpjZotRw4sc-eM4xWzMUZ72i9w_qyVkPvdGqEsBfK2HUwOxGGow77r6otBcTyUjvTxzZBFRk-OT5qbiQ");
headMap.put(Header.AUTHORIZATION.getValue(),list);
HttpResponse execute = HttpRequest.get("http://localhost:9095/contact/label/getGridByNbr").form(paramMap).header(headMap).execute();
System.out.println(execute.body());

// POST请求例子----------------------------------------------------------------
// 设置请求体参数
JSONObject paramMap = new JSONObject(2);
paramMap.put("userName","zhangsan");
paramMap.put("modelFlag","1");
// 设置请求头参数
Map<String, List<String>> headMap = new HashMap<>(3);
List<String> list = new ArrayList<>(1);
list.add("eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjJmYzk0ZmViLTc5ZDUtNDhmYy1iNGNiLWQ5M2IyM2EyNzk2MiJ9.NoLKfICpjZotRw4sc-eM4xWzMUZ72i9w_qyVkPvdGqEsBfK2HUwOxGGow77r6otBcTyUjvTxzZBFRk-OT5qbiQ");
headMap.put(Header.AUTHORIZATION.getValue(),list);
String executeBody = HttpRequest.post("http://localhost:9095/contact/label/handleContactModel").body(paramMap.toJSONString()).header(headMap).execute().body();
System.out.println(executeBody);

三、日期时间工具DateUtil

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哎呦喂O_o嗨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值