• 概述
    • 由来
    • 介绍
      • Hutool-http优点
    • 使用
    • 更多

    概述

    由来

    在Java的世界中,Http客户端之前一直是Apache家的HttpClient占据主导,但是由于此包较为庞大,API又比较难用,因此并不使用很多场景。而新兴的OkHttp、Jodd-http固然好用,但是面对一些场景时,学习成本还是有一些的。很多时候,我们想追求轻量级的Http客户端,并且追求简单易用。而JDK自带的HttpUrlConnection可以满足大部分需求。Hutool针对此类做了一层封装,使Http请求变得无比简单。

    介绍

    Hutool-http针对JDK的HttpUrlConnection做一层封装,简化了HTTPS请求、文件上传、Cookie记忆等操作,使Http请求变得无比简单。

    Hutool-http的核心集中在两个类:

    • HttpRequest
    • HttpResponse同时针对大部分情境,封装了HttpUtil工具类。

    Hutool-http优点

    • 根据URL自动判断是请求HTTP还是HTTPS,不需要单独写多余的代码。
    • 表单数据中有File对象时自动转为multipart/form-data表单,不必单做做操作。
    • 默认情况下Cookie自动记录,比如可以实现模拟登录,即第一次访问登录URL后后续请求就是登录状态。
    • 自动识别304跳转并二次请求
    • 自动识别页面编码,即根据header信息或者页面中的相关标签信息自动识别编码,最大可能避免乱码。
    • 自动识别并解压Gzip格式返回内容

    使用

    最简单的使用莫过于用HttpUtil工具类快速请求某个页面:

    1. //GET请求
    2. String content = HttpUtil.get(url);

    一行代码即可搞定,当然Post请求也很简单:

    1. //POST请求
    2. HashMap<String, Object> paramMap = new HashMap<>();
    3. paramMap.put("city", "北京");
    4. String result1 = HttpUtil.post(url, paramMap);

    Post请求只需使用Map预先制定form表单项即可。

    更多

    根据Hutool的“便捷性与灵活性并存”原则,HttpUtil的存在体现了便捷性,那HttpRequest对象的使用则体现了灵活性,使用此对象可以自定义更多的属性给请求,以适应Http请求中的不同场景(例如自定义header、自定义cookie、自定义代理等等)。相关类的使用请见下几个章节。