VSCode的REST Client指南,超好用的HTTP客户端工具

2023-05-16

我最新最全的文章都在 南瓜慢说 www.pkslow.com ,欢迎大家来喝茶!

1 简介

在做Web应用开发的时候,经常需要测试Web接口,就需要一些客户端来发送HTTP请求到服务端。常用的客户端工具有Postman、curl等,经过多次使用,我觉得VSCode的REST Client还是非常好用的,介绍给大家。

它是VSCode的一个插件,要安装才能使用:

主要特性有:

  • 在文本编辑器中就可以直接发送请求和查看返回
  • 可以直接发送curl命令
  • 可以将HTTP请求复制为curl命令,这样可以在其它linux终端上执行;
  • 可以管理请求历史:保存、查看、清除等;
  • 多个请求在一个文件上,用###分割;
  • 可以保存返回体到本地;
  • 生成多种语言的客户端代码,如python/Java等;
  • Cookies功能;
  • 最重要的一点:极其强大的变量管理功能

接下来将通过示例介绍这些特性。

2 基本功能

我先新建一个文件pkslow.http,后缀要是httprest才可以被识别。

2.1 链接即请求

只要一个链接就可以了:

不用其它内容,它就会显示Send Request,然后点击它,就能发送GET请求了。

2.2 多个请求

如果要多个请求,就通过###来分割。我们接着定义一个更完整的GET请求吧。

https://www.pkslow.com

###
GET https://www.pkslow.com HTTP/1.1

点击Send Request,会发送请求,返回体在右边:

POST请求:

POST https://www.pkslow.com/user HTTP/1.1
content-type: application/json

{
    "name": "larry",
    "age": 18
}

2.3 将请求复制为curl命令

选中请求,右键然后选择如下:

结果如下:

curl --request GET \
  --url https://www.pkslow.com/ \
  --header 'user-agent: vscode-restclient'

2.4 支持发送curl

可以支持运行crul命令,如下:

2.5 将请求转化为客户端代码

操作如下:

我们选择python,结果如下:

import requests

url = "https://www.pkslow.com/"
headers = {'user-agent': 'vscode-restclient'}
response = requests.request("GET", url, headers=headers)
print(response.text)

3 强大的变量

将这个变量的所有功能一起讨论,是因为我觉得它太强大了。也是我选择它很重要的一个理由。

关于变量:

支持自定义变量和环境变量;

不同环境变量定义及环境切换功能;

共享变量;

可以将变量放在任何地方:URL、Header、body等;

获取其它请求的变量;

提供系统动态变量:

  • {{$guid}}
  • {{$randomInt min max}}
  • {{$timestamp [offset option]}}
  • {{$datetime rfc1123|iso8601 [offset option]}}
  • {{$localDatetime rfc1123|iso8601 [offset option]}}
  • {{$processEnv [%]envVarName}}
  • {{$dotenv [%]variableName}}
  • {{$aadToken [new] [public|cn|de|us|ppe] [<domain|tenantId>] [aud:<domain|tenantId>]}}

3.1 文件中自定义变量

通过@命令来定义变量,然后通过两个大括号{{}}来引用变量:

###
@pkslowHost = www.pkslow.com

GET {{pkslowHost}} HTTP/1.1

3.2 配置多环境变量

在vscode的设置文件settings.json配置多环境变量:

"rest-client.environmentVariables": {
  "$shared": {
    "username": "pkslow",
    "password": "123456"
  },
  "local": {
    "hostname": "localhost:8080",
    "password": "{{$shared password}}"
  },
  "production": {
    "hostname": "localhost:8081",
    "password": "{{$shared password}}"
  }
}

添加了两个环境local和production,其中$shared的变量是大家都可以引用的。

引用变量hostname和password如下:

###
POST http://{{hostname}}/auth/login HTTP/1.1
Content-Type: application/json

{
    "username": "pkslow", 
    "password": {{password}}
}

在vscode的右下角切换环境:

3.3 获取其它请求返回体的值为变量

设想我们经常遇到的一个场景,先通过login请求来获取Token,然后再把拿到的Token作为请求头发送其它请求。这个Token肯定是每次登陆都不一样的,如果每次都要获取,然后复制,再粘贴到后面请求中,就会非常麻烦。REST Client为这种场景提供了便利的办法,我们来看看怎么使用吧:

先通过登陆请求获取Token:

###
# @name loginAdmin
POST http://{{hostname}}/auth/login HTTP/1.1
Content-Type: application/json

{
    "username": "pkslow", 
    "password": {{password}}
}

我们添加多了一行:

# @name loginAdmin

给它定义一个名字,后续就可以引用它的返回体了。

返回体内容如下:

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJwa3Nsb3ciLCJyb2xlcyI6WyJST0xFX0FETUlOIl0sImlhdCI6MTYyMjI3OTMxMCwiZXhwIjoxNjIyMjc5OTEwfQ.h-fwUEOPx_tttlBOR8cXMHJWy2n6ath7lTqzfdAX87c

所以我们要引用返回的所有内容,如下:

### 
@token = {{loginAdmin.response.body.*}}
GET http://{{hostname}}/admin HTTP/1.1
Authorization: Bearer {{token}}

通过{{loginAdmin.response.body.*}}来引用变量。格式如下:

{{requestName.(response|request).(body|headers).(*|JSONPath|XPath|Header Name)}}

所以如果返回体内容是:

{
  "token": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJwa3Nsb3ciLCJyb2xlcyI6WyJST0xFX0FETUlOIl0sImlhdCI6MTYyMjI3OTMxMCwiZXhwIjoxNjIyMjc5OTEwfQ.h-fwUEOPx_tttlBOR8cXMHJWy2n6ath7lTqzfdAX87c"
}

就通过{{loginAdmin.response.body.$.token}}来引用变量。

4 总结

我把我觉得比较有用的功能都讲解了一下,更多请参考:GitHub vscode REST Client


欢迎关注微信公众号<南瓜慢说>,将持续为你更新...

多读书,多分享;多写作,多整理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VSCode的REST Client指南,超好用的HTTP客户端工具 的相关文章

  • 【C语言】printf输出16进制: %x %02x %#x

    x即按十六进制输出 xff0c 英文字母小写 xff0c 右对齐 02X有以下变化 xff1a 英文字母变大写 xff0c 如果输出字符不足两位的 xff0c 输出两位宽度 xff0c 右对齐 xff0c 空的一位补0 超过两位的 xff0
  • 【c语言】结构体初始化4中方法

    今天在6轴传感器的驱动代码源文件中看到结构体没见过的写法 xff1a typedef struct uint8 t xlda 1 uint8 t gda 1 uint8 t tda 1 uint8 t not used 01 5 lsm6d
  • 【debug】stm32 指针奇数地址问题导致HardFault

    很久很久没有记录过debug了 xff0c 今天有空就正好记录一下 嵌入式开发 xff0c stm32F407的MCU的开发板 遇到如下问题 xff1a 变量的地址竟然为奇数 xff01 xff01 xff01 导致程序运行到写入该地址的数
  • 【Autosar】学习总结-BSW层

    一 简介 AUTOSAR AUTomotive Open Systems ARchitecture xff0c 汽车开放系统架构 1 优势 xff1a 有利于提高软件复用度 xff0c 尤其是跨平台的复用度 xff1b 便于软件的交换与更新
  • 【PWM】从stm32到pwm到OLED屏幕调光到晚上不要玩手机

    一 前言 最近做项目 xff0c 配置了单片机中PWM波形输出 xff0c 配置单片机中的一个引脚输出PWM波 xff0c 示波器查看这个波形 xff0c 做了实践操作 xff0c 有一些感想 xff0c 将一些了解过的知识和常识结合 xf
  • 算法提高 高精度加法

    1051 算法提高 高精度加法 时间限制 1 Sec 内存限制 256 MB 提交 5 解决 2 提交 状态 讨论版 题目描述 在C C 43 43 语言中 xff0c 整型所能表示的范围一般为 231到231 xff08 大约21亿 xf
  • 【Autosar】学习总结-MCAL

    一 简介 MCAL xff1a 微控制器抽象层 xff1b 位于BSW层中的最下层 xff1b MCAL细分 xff0c 可将驱动分为 xff1a 微控制器驱动 存储器驱动 通信驱动 IO驱动 xff1a 二 MCAL的配置 xff08 E
  • 【2022】年度总结

    一 月报 xff1a 1 一月 二月 初入新公司 xff0c 还在试用期 xff1b 进的外包安卓手机升级项目 xff0c 是一个短期的项目 xff0c 3 4个月左右 xff1b 第一次了解到外包项目原来是这种模式 xff1a 建立黄区
  • 【笔试总结 网络】IP地址分类 划分子网 子网掩码 (相关例题分析)

    xff08 最近做了很多春招公司笔试卷子 xff0c 发现很多是学过的东西 xff0c 看着很熟悉 xff0c 就是不会 很多学过的概念模棱两可 xff0c 这在笔试中很吃亏 说不会吧会点 xff0c 说会吧 xff0c 做不出来 就比如关
  • 网页登录时密码如何传输?

    今天突发奇想想看下一般网站登录时密码是如何传输的 首先是QQMail xff0c gmail xff0c 各大网上银行等对于我非常重要的登录网站 xff1a https https的安全性自然是很高 其次是通常的腾讯微博以及其他腾讯常用的网
  • C/C++中简单数据结构的对齐

    这里只讨论简单的数据结构 xff0c 从MSDN上的例子开始 struct x char a 1 byte int b 4 bytes short c 2 bytes char d 1 byte 在没有对齐的情况下 xff0c x 中的所有
  • yolo数据增强以及批量修改图片和xml名

    记录下打完标签对数据集进行扩增 xff0c 数据增强后的图片及标签名字进行修改 xff0c 重点在代码只需更改文件名就可使用 无论数据增强还是修改名称 xff0c 标签框位置都会跟着改变 xff01 xff01 xff01 前人之鉴 xff
  • 利用select实现服务器和客户端的随时收发

    服务器代码实现 xff1a include lt stdio h gt include lt sys types h gt include lt sys socket h gt include lt arpa inet h gt inclu
  • 采集温度数据,用串口传输到上位机

    这里写目录标题 一 实验要求二 I2C总线通信协议 xff08 一 xff09 概念 xff08 二 xff09 I2C总线特征 xff08 三 xff09 I2C总线协议 xff08 四 xff09 I2C的两种方式 硬件I2C和软件I2
  • rflysim基于simulink控制3.4:硬件在环仿真-e0-1实验

    一 实验1 xff1a Simulink代码自动烧录 要求 xff1a 将设计好的simulink模型 xff0c 生成固件烧录到Pixhawk中 步骤 xff1a 1 设计控制器 例程参考 xff1a e0 2 PSPOfficialEx
  • 如果参数是指针,且仅作输入用,则应在类型前加 const,以防止该 指针在函数体内被意外修改...

    如果参数是指针 xff0c 且仅作输入用 xff0c 则应在类型前加 const xff0c 以防止该 指针在函数体内被意外修改 1 include lt iostream gt 2 3 run this program using the
  • 【ROS进阶】一文搞懂ROS话题通信机制与消息队列

    文章目录 一 话题通信机制解析1 话题通信机制简介2 消息队列分析3 使用技巧 二 实验验证 xff08 一 xff09 subscriber队列长度对数据传输影响 xff08 二 xff09 数据传输时间延迟 三 总结 一 话题通信机制解
  • stm32串口DMA方式发送数据

    该文档介绍stm32 uart1通过DMA方式发送和接收数据 xff0c 代码示例基于ucos ii操作系统 该文档参考https wenku baidu com view d44ef1380975f46526d3e1b5 html 中内容
  • opencv立体标定函数 stereoCalibrate()

    立体标定函数 nbsp stereoCalibrate nbsp nbsp stereoCalibrate nbsp 是用来标定一个立体摄像头的 也就是同时标定两个摄像头 标定的结果除了能够求出两个摄像头的内外参数矩阵 跟能够得出两个摄像头
  • postman好用的插件有哪些,给出实例和插件下载地址、使用方法

    postman好用的插件有哪些 xff0c 给出实例和插件下载地址 使用方法 Postman 是一个常用的高级 API测试工具 xff0c 也可以用来测试 Web 应用程序 它提供了许多内置的功能和工具 xff0c 同时还支持通过插件拓展其

随机推荐

  • STM32 HAL库实现多串口使用printf输出

    include lt stdlib h gt include lt stdio h gt include lt stdarg h gt 描述 xff1a HAL库实现多串口使用printf输出 参数 xff1a huart xff1a 对应
  • FIFO与DMA

    FIFO存储器是一个先入先出的双口缓冲器 xff0c 即第一个进入其内的数据第一个被移出 xff0c 其中一个存储器的输入口 xff0c 另一个口是存储器的输出口 主要有三个方面的作用 xff1a 1 xff09 对连续的数据流进行缓存 x
  • 两种常用压控电流源设计

    电流源是一种非常常用的电路 xff0c 如工业中4 20mA输出 xff0c LED恒流驱动 xff0c 以及一些传感器可能也需要恒流驱动等 本篇文章介绍两种常见的压控电流源电路的设计 废话不多说 xff0c 直接看图 xff1a 电路很简
  • 峰峰值-峰值-平均值-有效值之间有什么关系?

    首先 xff0c 这几个值一般针对交流信号说的 实际应用中 xff0c AD采集交流信号后 xff0c 可能需要各个值之间相互转换比较等 xff0c 就需要这几个值之间有什么关系 先说说这几个值的定义 峰峰值Vpp xff08 Peak t
  • 几种电平转换电路

    在电路设计时 xff0c 有时会遇到电压域不匹配的问题 xff0c 如芯片为1 8V供电 xff0c 而MCU为3 3V供电 这时候就需要进行电平转换才能通讯 今天就来介绍几种常用的电平转换电路 二 三极管单向电平转换 一些通讯模块 xff
  • STM32的串口硬件流控(RS232/RS485)

    流控的概念源于 RS232 这个标准 xff0c 在 RS232 标准里面包含了串口 流控的定义 RS232 中的 RS 是Recommend Standard 的缩写 xff0c 即 推荐标准 之意 xff0c 它并不像 IEEE 128
  • 头文件中写类的实现出现函数重复定义的问题

    先来做一个实验 xff0c 你在一个头文件中定义一个类 xff0c 然后把内中的一个函数的实现写在这个头文件当中 A test h ifndefine A TEST define A TEST class A void test void
  • 步进电机驱动代码

    步进电机简而言之就是能够通过输入脉冲的个数 xff0c 确定旋转的角位移 xff0c 一般用他来控制小车轮子的偏移角度等 步进电机由驱动芯片ULN2003驱动 xff0c 利用ULN2003与MCU引脚相连 xff0c 可以驱动步进电机 主
  • 全速下载百度云

    用CMD命令下载百度云的资源 听起来类似Linux或者我们在电影里常见的黑客下载数据 需要准备工具 xff1a Windows系统 xff08 我用的是Windows10 xff09 xff0c CMD命令行 xff0c BaiduPCS
  • 几种常用电流互感器采样电路

    我们知道 xff0c 采样电流信号最简单的方法就是通过采样电阻将电流信号转换为电压信号 xff0c 然后再进行放大 采样即可 直流信号一般都可以这样处理 xff0c 但是对于电流互感器出来的交流信号 xff0c 不能直接输入到单极性的AD进
  • 调试程序时怎样查看变量波形?看这里

    我们在调试单片机程序时 xff0c 经常会需要查看某个变量或数组的值 xff0c 一般情况下 xff0c 可以通过 Add xxx to Watch 来查看 xff0c 或直接查看内存 但有时候 xff0c 比如ADC采样时 xff0c 单
  • 几种常用的产生负电源的方法

    电源电路是电路设计的重要环节 xff0c 一般情况下 xff0c 单电源能实现功能的用单电源就行 xff0c 可选的方案很多 xff0c DC DC LDO等芯片很多 有时候 xff0c 单电源无法满足需求时 xff0c 就必须用到负电源
  • 盘点一些国产“有特点”的单片机

    自从芯片涨价潮以来 xff0c 国产芯片 xff0c 尤其是单片机类芯片犹如雨后春笋般发展起来 xff0c 其中也不乏一些优秀的产品 今天来盘点一下一些有特点的单片机 这里所说的单片机 xff0c 是指通用型的MCU xff0c 像ESP3
  • 不会写Bootloader?看这里,现成的

    前段时间要写一个BootLoader程序 xff0c 想起来好像在STM32的HAL库里面看到过相关的Demo xff0c 打算参考一下 打开相关的目录看了一下 xff0c 确实是有相关文件 xff1a 但是没找到工程文件 没办法 xff0
  • 一个IO挂多个按键怎么实现?

    有时候做设计时 xff0c 我们会遇到外部按键比较多 xff0c IO口不够用的情况 这时大部分人会考虑通过其它芯片扩展IO xff0c 或者直接换一个IO口足够的MCU 其实 xff0c 还有个方法可以实现一个IO上挂多个按键 即采用AD
  • SWM32系列教程8--SPI及其应用

    SPI接口是非常常用的一种数字外设 xff0c SWM32S单片机有2个SPI接口 xff0c 其特点如下 xff1a 全双工串行同步收发可编程时钟极性和相位支持 MASTER 模式和 SLAVE 模式MASTER 模式下最高传输速度支持主
  • STM32使用HAL库驱动W5500

    W5500 芯片是一款集成全硬件 TCP IP 协议栈的嵌入式以太网控制器 xff0c 为单片机提供了更加简单 快速 稳定 安全的以太网接入方案 采用标准4线SPI接口 xff0c 理论速率上可以达到 80MHz 硬件设计 原理图如下 xf
  • SWM32系列教程9-SDIO及FatFs文件系统

    SWM32S单片机有1个SDIO接口 xff0c 支持多媒体卡 xff08 MMC xff09 SD 存储卡 SDIO 卡等设备 xff0c 可以使用软件方法或者 DMA 方法 xff08 SDIO 模块内部 DMA xff0c 与芯片 D
  • SWM32系列教程10--SDRAM和LCD

    SWM32S单片机内部集成了8MB的SDRAM以及LCD控制器 xff0c 非常适合用于屏幕驱动 其中LCD控制器支持RGB565格式的接口 xff0c 最大支持1024 768分辨率 今天来介绍一下这两个外设的用法 SDRAM SWM32
  • VSCode的REST Client指南,超好用的HTTP客户端工具

    我最新最全的文章都在 南瓜慢说 www pkslow com xff0c 欢迎大家来喝茶 xff01 1 简介 在做Web应用开发的时候 xff0c 经常需要测试Web接口 xff0c 就需要一些客户端来发送HTTP请求到服务端 常用的客户