IDEA中最好用的HTTP请求插件,简直逆天!

发布于:2024-05-07 ⋅ 阅读:(39) ⋅ 点赞:(0)

前言

在后端SpringBoo开发中,都需要一个接口测试工具,从一开始的postman,到现在的国产测试工具,数不胜数,而最方便的莫过于在IDEA中就可以调试,因为IDEA插件中有能力分析出当前项目所编写的Controller数据,可以进行统计,更方便我们发起http请求,不需要复制url到别的测试工具了,今天就推荐一款,名叫Cool Request,他纯免费、开源。

  • 插件名称: Cool Request

  • Github:

  • 文档链接:

  • 作用: 简化SpringBoot后端接口调试流程。

  • 安装方式: IDEA 插件商店中搜索Cool Request

在这个五一假期,Cool Request做了大量优化,无论是从界面体验,还是脚本的编写。

让我们看一下最新的效果图

image.png

image.png 有人可能说,不就是一个HTTP插件嘛,No No No,英雄请留步,容我介绍一下你从未见过的功能,此功能在很大程度上会提升调试的便捷性。

功能介绍

为了减少阅读时间,我把核心亮点功能介绍放在首位。

方法耗时统计

这也是同类插件中唯一有的功能,并且所有功能均免费。

Trace可以统计除了java包的任意包,为什么不能统计java的?因为可能会出现不稳定的情况,再说,java包怎么可能有问题,有问题的也是你的代码(手动狗头)。

Trace如果在启用状态下,将在你发起请求的时候,自动从Controller方法下开始跟踪,如果深度为1,那么则只跟踪Controller方法,如果深度为2,则跟踪Controller下所有方法,深度为3,那就跟踪Controller下所有方法下的所有方法,以此类推,但是会出现你设置了一个很大的值,却跟踪不到这个深度,这是因为有些是通过接口(interface)调用的,静态代码分析无法分析到是哪个实现类,所以没办法继续向下跟踪,可以右击任意方法,手动添加方法跟踪。

image.png

另外,其中左侧的+100,这些代表在这个方法下,此方法调用了100次,但目前无法统计每个方法的耗时。

如果想高亮5ms以上的方法,可以在设置中,设置5ms,那么超过5ms的将处于红色状态,非常方便。

image.png

绕过拦截器、过滤器

首先这都是在开发的时候,在使用了Cool Request之后可以绕过,其他情况不可,不要想歪了哦。

在介绍这个前,先说一下使用场景。在具有登录认证的接口中,我们首先要通过登录接口拿到token,之后每个请求都会携带这个token,用于认证,而在一些情况下,这些接口其实不需要用户信息去查表,但是这类接口依然需要登录后才可以调用,那如果这个token过期,你是不是又要重新登录?

在用了Cool Request就不用了,他可以直接发起一个请求,从而绕过拦截器、过滤器,让请求直接到达Controller方法,十分的方便。

使用也非常简单,直接选择reflex即可

image.png

手动触发定时任务、xxljob

如果定时任务很长,并且你想触发一次,比如是一些清理任务,你要怎么做?肯定不能等待他触发吧。

没错Cool Request可以一键触发xxl-job,并且支持参数传递,还有Spring内置的调度器注解。

image.png

java前后置脚本

这是对java开发者最大的方便,也是目前所有idea同类型插件中,唯一支持java前后置脚本的工具。

在最新版本中,引来史诗级的加强,他可以做到几乎任意的功能,比如你可以在脚本中创建一个窗口(JFrame)也是可以的,比如调用第三库,或者是SpringBoot内置的工具类,在目前的反馈中,还没有遇到完不成的事情。

我们来看一个小例子,这个是用来将http响应结果中的data字段(token),提取到当前环境中的全局请求头中,是不是非常简单。

    public void handlerResponse(ILog log, HTTPResponse response,IEnv env) {

     env.getCurrentEnv().setEnvHeader("Authorization",response.getIfJSONBody().getKey("data").toString());

    }
}

或者可以使用fastjson或者其他json解析库,解析结果。

public void handlerResponse(ILog log, HTTPResponse response,IEnv env) {

    String body =new String(response.getResponseBody());
    log.println(body);
    User user = JSON.parseObject(body, User.class);
    log.println(user.getAge()+"");

}

在代码编辑区调试

如果嫌调试界面空间小,可以右击api,选择Open in a new tab,在新标签中打开,新标签中的参数也是上次请求时候的所设置的。

image.png

导出到第三方

目前接入了apifox、apipost,可以一键导出到他们,同时也支持导出为openapi。

image.png

多icon

为了满足不同用户的喜好,在icon的设计上,我们提供了两种,可以看下图,并且也提供了中/英文切换

image.png

image.png

响应预览

目前支持5种格式预览,分别是json、text、image、html、xml,在成功响应后,会自动推测出响应的格式,并自动解析。

image.png