idea自带的HttpClient使用

1. 全局变量配置

复制代码
{
  "local":{
    "baseUrl": "http://localhost:9001/"

  },
  "test": {
    "baseUrl": "http://localhost:9002/"
  }
}

2. 登录并将结果设置到全局变量

java 复制代码
    @PostMapping("/login")
    public JSONObject login(
            HttpServletRequest request,
            HttpServletResponse response, @RequestBody User user) {

       String token = TokenUtil.createToken(10021, (long) user.getId(), "abc");

        Cookie cookie = new Cookie("access-token", token);
        response.addCookie(cookie);

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("token", token);
        return jsonObject;
    }
java 复制代码
### 登录 (并将结果设置到全局变量)
POST {{baseUrl}}//user/login
Content-Type: application/json

{
  "id": 1
}

// 将结果设置到全局变量(response.body 是前缀, token 在接口返回的最外层)
> {%
    client.global.set("access-token", response.body.token);
%}

3. get请求

3.1 携带请求参数(head、cookie)

java 复制代码
    @LoginRequire
    @GetMapping("/getV1")
    public String getV1(@RequestParam("appId") Integer appId, @RequestParam("userId") Integer userId) {
        if (appId == null || userId == null) {
            throw new RuntimeException("参数错误");
        }
        return "success";
    }
java 复制代码
### get请求携带请求参数
GET http://localhost:9001/http/test/getV1?appId=1&userId=2
access-token: {{access-token}}
cookie:access-token={{access-token}}

3.2 get请求携带路径参数

java 复制代码
    @LoginRequire
    @GetMapping("/getV2/{appId}/{userId}")
    public String getV2(@PathVariable("appId") Integer appId, @PathVariable("userId") Integer userId) {
        if (appId == null || userId == null) {
            throw new RuntimeException("参数错误");
        }
        return "success";
    }




### get请求携带路径参数
GET http://localhost:9001/http/test/getV2/1/2

3.2 get请求携带 body

java 复制代码
    @LoginRequire
    @GetMapping("/getV3")
    public String getV3(@RequestBody BaseQuery baseQuery) {
        if (baseQuery == null || StringUtils.isEmpty(baseQuery.getName()) || baseQuery.getPageNo() == null || baseQuery.getPageSize() == null) {
            throw new RuntimeException("参数错误");
        }
        return "success";
    }



###  get请求携带 请求体
GET http://localhost:9001/http/test/getV3
Content-Type: application/json

{
  "pageNo": 1,
  "pageSize": 2,
  "name": "zhangsan"
}

4. post请求

4.1 post请求携带head、cookie、body

java 复制代码
    @LoginRequire
    @PostMapping("/add")
    public String add(HttpServletRequest request, @RequestBody User user) {
        String appId = request.getHeader("appId");
        if (StringUtils.isEmpty(appId)) {
            throw new RuntimeException("参数错误");
        }
        Cookie[] cookies = request.getCookies();

        return "success";
    }



### post请求:添加header、cookie
POST http://localhost:9001/http/test/add
// header
Content-Type: application/json
appId:1
// cookie
access-token: {{access-token}}
cookie:access-token={{access-token}}

// 请求体
{
  "userName": "zhangsan",
  "age": 20
}

4.2 . 上传文件

java 复制代码
    @ApiOperation("上传excel")
    @PostMapping("/uploadAwardExcel")
    WebApiRes<Boolean> uploadAwardExcel(@RequestParam(value = "file") MultipartFile file) {
        if (file.isEmpty()) {
            return null;
        }
        String originalFilename = file.getOriginalFilename();
        try {
            EasyExcel.read(file.getInputStream(), ImportAwardItemDTO.class, new ImportAwardItemListener(importAwardItemService)).sheet().doRead();

        } catch (BizException e) {
            log.error("上传饰品excel失败", e);
            return  WebApiRes.failure(-1, e.getErrorMsg());
        }catch (Exception e) {
            log.error("上传饰品excel失败", e);
            return  WebApiRes.failure(-1, "上传饰品excel失败");
        }
        return WebApiRes.success(true);

    }





### post请求:导入文件
POST http://localhost:8082/ornaments-list/uploadAwardExcel
Content-Type: multipart/form-data; boundary=WebAppBoundary

--WebAppBoundary
Content-Disposition: form-data; name="file"; filename="excelTemplateV2.xlsx"


<  ./excelTemplateV2.xlsx
--WebAppBoundary--

5. websocket

其他:

idea中的参考文档

其他插件一块使用

apiPost

相关推荐
xifangge20252 小时前
jdk版本不一样怎么办?一台电脑如何完美共存 JDK 8/11/17/21?多版本无缝切换与 IDEA 环境隔离实战指南
java·开发语言·jdk·intellij-idea
我是一颗柠檬3 小时前
【JDK8新特性】方法引用与构造器引用Day3
java·开发语言·后端·intellij-idea
我是一颗柠檬18 小时前
【JavaSE全面教学】Java集合框架下Day13(2026年)
java·开发语言·intellij-idea
编程牛马姐1 天前
2026年Reddit养号指南:养号四个阶段实操
python·spring·intellij-idea
我是一颗柠檬1 天前
【JDK8新特性】函数式接口Day2
java·开发语言·后端·intellij-idea
yychen_java2 天前
IDEA × Qoder:告别“手写Spring”,进入AI协作开发新时代
人工智能·spring·intellij-idea
wh_xia_jun2 天前
用pom 的test 配置 与 jacoco
java·ide·intellij-idea
铁打的阿秀2 天前
IDEA启动项目报错: 加载主类 com.seeburger.webedi.system.SystemApplication 时出现 LinkageError
java·ide·intellij-idea
wh_xia_jun2 天前
给小白的 Maven 命令行执行测试 完整指南
git·maven·intellij-idea
我命由我123452 天前
PHP - PHP 基本随机数生成函数
开发语言·ide·后端·java-ee·php·intellij-idea·intellij idea