idea自带的HttpClient使用

1. 全局变量配置

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

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

    @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;}

### 登录 (并将结果设置到全局变量)
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)

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

3.2  get请求携带路径参数

    @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

    @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

    @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 . 上传文件

    @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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/459084.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

COMSOL接触(高度非线性)仿真常见报错及解决方法总结

前言 由于COMSOL采用隐式求解器&#xff0c;相较于使用显式求解器的Dyna、Abaqus等软件。要在COMSOL中实现结构接触这一高度非线性问题难度较大&#xff0c;报错时有发生。究其原因&#xff0c;是当物体之间相互接触时&#xff0c;物体受到的应力、运动路径会发生突变&#xff…

C++进阶--C++11智能指针

目录 一、智能指针的使用及原理1.1 什么是智能指针1.2 智能指针的发展历史1.3 智能指针的使用1.3.1 内存泄漏问题1.3.2 利用异常的重新捕获解决1.3.3 利用智能指针解决 1.4 智能指针的原理1.4.1 需要考虑的问题1.4.2 为什么要解决智能指针对象的拷贝问题 二、C中的智能指针2.1 …

JavaScript基础第二天

JavaScript基础第二天 今天我们学习if分支语句、三元表达式和switch-case语句。 1. if分支语句 1.1 语法 if (条件表达式){// 满足条件要执行的语句 } else {// 不满足条件要执行的语句 }if中的内容如果为true&#xff0c;就执行大括号的代码块&#xff0c;如果为false执行…

一步步建立一个C#项目(连续读取S7-1200PLC数据)

这篇博客作为C#的基础系列,和大家分享如何一步步建立一个C#项目完成对S7-1200PLC数据的连续读取。首先创建一个窗体应用。 1、窗体应用 2、配置存储位置 3、选择框架 拖拽一个Button,可以选择视图菜单---工具箱 4、工具箱 拖拽Lable控件和TextBook控件 5、拖拽控件 接下来…

张艺谋《主角》选角引发热议,周迅、赵丽颖、杨紫或成候选。

♥ 为方便您进行讨论和分享&#xff0c;同时也为能带给您不一样的参与感。请您在阅读本文之前&#xff0c;点击一下“关注”&#xff0c;非常感谢您的支持&#xff01; 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 近日&#xff0c;张艺谋执导的首部电视剧《主角》女主选角成为…

MybatisPlus学习

文章目录 快速入门入门案例常见注解常见配置 核心功能条件构造器自定义SQLIService接口 扩展功能代码生成器静态工具逻辑删除枚举处理器JSON处理器 插件功能分页插件通用分页实体 快速入门 入门案例 初始用户表 在单表查询时候简化了Mapper接口与XML的配置统统不需要了 //只…

拿捏循环链表

目录&#xff1a; 一&#xff1a;单链表&#xff08;不带头单向不循环&#xff09;与循环链表&#xff08;带头双向循环&#xff09;区别 二&#xff1a;循环链表初始化 三&#xff1a;循环链表头插 四&#xff1a;循环链表尾插 五&#xff1a;循环链表头删 六&#xff1…

【高阶数据结构】B-树详解

文章目录 1. 常见的搜索结构2. 问题提出使用平衡二叉树搜索树的缺陷使用哈希表的缺陷 3. B-树的概念4. B-树的插入分析插入过程分析插入过程总结 5. B-树的代码实现5.1 B-树的结点设计5.2 B-树的查找5.3 B-树的插入实现InsertKey插入和分裂测试 6. B-树的删除&#xff08;思想&…

跳过mysql5.7密码并重置密码 shell脚本

脚本 目前只是验证了5.7 版本是可以的&#xff0c;8.多的还需要验证 以下是一个简单的Shell脚本&#xff0c;用于跳过MySQL密码设置并重置密码&#xff1a; #!/bin/bash yum install psmisc -y# 停止MySQL服务 sudo service mysqld stop# 跳过密码验证 sudo mysqld --skip-g…

【MySQL进阶之路】SpringBoot 底层如何去和 MySQL 交互了呢?

SpringBoot 底层如何去和 MySQL 交互了呢&#xff1f; 我们在写做 Java 项目时&#xff0c;一般都是引入 MyBatis 框架来和 MySQL 数据库交互&#xff0c;如果需要在 MySQL 上执行什么语句&#xff0c;只需要在 Mapper.xml 文件中定义对应的 SQL 语句即可 那么他底层到底是如…

植物生长调节剂行业调研:预计2029年将达到1.2亿美元

未来增长的重点势必在以中国为代表的亚太地区。尤其在我国农业现代化、无人化发展需求下&#xff0c;提升种植的效率和品质是必然需求&#xff0c;我国市场规模增速也将高于全球平均水平。植物生长调节剂的应用具有成本低、收效快、效益高、节省劳动力的优点&#xff0c;不仅对…

Power Designer的使用 创建数据库表模型,生成sql语句,生成C#实体类

几年前用过PowerDesigner&#xff0c;好几年没用&#xff0c;有点忘记了&#xff0c;在这里记个笔记&#xff0c;需要的时候翻一翻 PowerDesigner版本16.5 下面的例子是以MySQL数据库为准 生成C#实体类 一 安装 1.1 安装 不让放网盘链接&#xff0c;审核通不过。。。。 …