使用VSCode RestClient 插件发送HTTP请求

380 阅读2分钟

介绍

RestClient是一款强大的VSCode插件,用来在实际工程开发中,测试API接口。
除了兼容curl命令行格式外,还能使用其专属的格式进行更灵活的操作,模拟一系列的接口操作(如登录-获取token-使用token获取其他信息-注销等)。

安装

在vscode的扩展商店中搜索"rest client"并安装即可。

image.png

上手使用

curl

假设我们要访问一个接口 'http://127.0.0.1:5000/hello' ,
该接口简单返回一个 'Hello World!': image.png 使用Chrome控制台直接获取该接口的curl bash格式命令行: image.png Rest Client兼容bash的curl命令行格式,因此我们可以直接复制任何curl命令行,粘贴到vscode的文本中使用,文本格式不限,也不需要保存文件。
粘贴到VSCode的文本文件中: image.png 全选curl命令行,默认有两种方法调用Rest Client客户端进行HTTP请求:

  1. 使用VSCode命令框搜索 Rest Client: Send Request
  2. 直接使用快捷键 Ctrl+Alt+R image.png 请求成功后,右边会弹出请求结果,包含Header和Body: image.png

HTTP文件

Rest Client支持创建.http文件来进行更复杂的http请求,使用标准的RFC 2616格式规范,每个http请求使用三个#进行隔开,使用@存储变量,使用{{}}来引用变量。

下面以一个场景为案例:
我们需要访问/login,传入正确的usernamepassword获取token,然后根据token获取用户信息。
创建一个http文件,输入下面的内容:

@host=127.0.0.1
@port=5000

### 登录
# @name login
POST http://{{host}}:{{port}}/login
Content-Type: application/json

{
    "username":"test",
    "password":"some_password"
}

@user_token = Bearer {{login.response.body.access_token}}

### 获取用户详情
# @name get_user_detail
POST http://{{host}}:{{post}}/user_info
Content-Type: application/json
Authorization: {{user_token}}

{
    
}

  • @定义变量,{{}}使用变量,执行请求时会完整替换。这边定义了hostport,未来如果地址有变,直接修改变量,就不需要每个请求的host和port都改一遍。
  • ###定义一个请求的范围,这边定义了两个,登录获取用户详情
  • # @name request_name 定义一个请求的名字,后续可以使用这个名字获取它的request和response数据。这边定义了 # @name login# @name get_user_detail
  • @user_token = Bearer {{login.response.body.access_token}}/login返回的body中的access_token 赋值给 user_token变量。
    后面的获取用户详情接口在Header中的Authorization直接引用。
    Rest Client的变量生命周期与文件保持一致,也就是说如果不关闭当前文件,这个user_token一直有效。