当前位置:   article > 正文

媲美 postman 的 IDEA 插件神器,常用功能统统搞定!

类似于postman的ideal插件

介绍

RESTful WebServices是一个类似jmeter、postman的工具。可以使用纯文本编辑。

编写HTTP请求

在IDEA中的位置Tools->Http client->Test Restful WebService。点击之后出现如下界面

dd3f89f60f4e1ffd7e692574de877d34.png

点击红色部分即可出现文本编辑页面

002fc042a97698687cd33aa658049d13.png

可以点击Add Request快速生成模板,也可输入gtr生成get请求模板,ptr生成post请求模板,mptr生成multipart/form-data请求模板。

93e5d041128b7bcac349b6f1b6977db6.png

点击Examples,其中包含很多复杂的http请求集合示例,可以参考,非常全面。

379332ab8da0bad63ed6feb309b29a6b.png

HTTP请求中使用变量

编写HTTP请求时,可以使用variables来参数化其元素 。变量可以保存请求的主机,端口和路径的值,查询参数或值,标头值或在请求主体内部或外部文件中使用的任意值。

要在请求中提供变量,请将其括在双花括号中,如{{variable}}。变量名称只能包含字母,数字,下划线符号 _或连字符-。

变量的值可以通过以下方式获取:

  • 默认方式动态生成的$uuid$timestamp$randomInt预定义的动态变量

  • 通过环境变量为每个环境显式提供

  • 编写响应处理脚本方式定义。即使用 client.global.set

预定义的动态变量

每次您运行请求时,动态变量都会生成一个值:

  • $uuid:生成通用的唯一标识符(UUID-v4)

  • $timestamp:生成当前的UNIX时间戳

  • $randomInt:生成介于0到1000之间的随机整数。

例如:

GET http://localhost/api/get?id={{$uuid}}

环境变量创建

环境变量使您可以在项目内部存储一组环境定义。例如,您可以创建和使用{{host}}变量,而不是在请求中显式提供主机名。执行请求时,可以在定义的环境之间进行选择,然后将其发送到特定的主机:

a53db64a22243019e210930a2ff8b68b.png

定义环境变量

环境变量在环境文件中定义。

在项目内部,创建以下文件:

  • rest-client.env.json(或http-client.env.json)是包含常见的变量,其目的是要与你的项目一起分发的常规文件。

  • rest-client.private.env.json(或http-client.private.env.json)是一个 私人 的文件可能包括密码,令牌,证书和其他敏感信息。默认情况下,此文件被添加到VCS忽略文件列表中。在http-client.private.env.json文件中指定的变量的值将覆盖环境文件中的值。

环境变量示例

http-client.env.json

  1. {
  2.     "development": {
  3.         "host""localhost",
  4.         "id-value"12345,
  5.         "username""",
  6.         "password""",
  7.         "my-var""my-dev-value"
  8.     },
  9.     "production": {
  10.         "host""example.com",
  11.         "id-value"6789,
  12.         "username""",
  13.         "password""",
  14.         "my-var""my-prod-value"
  15.     }
  16. }

http-client.private.env.json

  1. {
  2.     "development": {
  3.         "host""localhost",
  4.         "id-value"12345,
  5.         "username""",
  6.         "password""",
  7.         "my-var""my-dev-value"
  8.     },
  9.     "production": {
  10.         "host""example.com",
  11.         "id-value"6789,
  12.         "username""",
  13.         "password""",
  14.         "my-var""my-prod-value"
  15.     }
  16. }

示例HTTP请求如下

  1. GET http://{{host}}/api/json/get?id={{id-value}}&key={{unresolved_var}}
  2. Authorization: Basic {{username}} {{password}}
  3. Content-Type: application/json
  4. {
  5. "key": {{my-var}}
  6. }

当您执行上述请求时,IntelliJ IDEA会在定义的执行环境之间提供一个选择:

262638122bbe04fe278cbb7adc4c7720.png

响应处理脚本API

该脚本包含两个对象,分别为client和response。该脚本在http请求完成后执行。

  • client存储会话元数据,可以在脚本内部对其进行修改。该client直到IntelliJ IDEA关闭存在。

  • response保存有关接收到的响应的信息:其内容类型,状态,响应正文等。

HTTP Client 介绍

Client用于存储全局变量,跟随IDEA启动和关闭,重启IDEA变量不会保存。

client属性

名称描述
global用于全局变量存储,用于设置,检索,或删除变量。在HTTP请求中,您可以使用语法{{variable_name}}访问存储在client.global中名称为variable_name的变量。

client方法

名称参数描述
testtestName (string) func (function)创建名为testName,body 为func的测试。
assertcondition (boolean) message (string)检查指定的 condition 是true; 否则引发异常。可选message 参数用作异常消息。
logtext打印text到控制台

global全局变量存储对象

该global对象用作变量存储,并用于设置,检索或删除变量。

global方法

名称参数描述
setvarName(String) varValue(String)将具有varName名称的变量保存到存储器中,并将其值设置为 varValue。
getvarName(String)返回varName变量的值。
isEmpty
检查global对象是否未定义变量。
clear
从变量存储中 删除变量varName。
clearAll
从变量存储中删除所有变量。

HTTP response对象

该response对象保存有关接收到的HTTP响应的信息(响应内容,标头,状态等),并提供对headers和contentType嵌套对象的访问。

responses属性

名称描述
body(字符串或者对象) 响应内容,如果响应的内容类型 为application / json,则为字符串或JSON对象 。
headers(ResponseHeaders)响应报头存储对象
status(int)响应状态,例如200或404。
contentType (ContentType)contentType对象,用于保存Content-Type响应标头值上的数据。

Headers对象

该ResponseHeaders对象用于检索有关响应头值的数据。

方法

名称参数描述
valueOfheaderName (string)检索headerName响应头的第一个值,或者 null如果headerName响应头不存在。
valuesOfheaderName (string)检索包含headerName响应标头的所有值的数组。如果headerName响应头不存在,则返回一个空数组。

ContentType对象

用于保存Content-Type响应标头值上的数据。

属性

名称描述
mimeType(string)响应的MIME类型,例如text / plain, text / xml,application / json
charset(string)响应字符集的字符串表示形式,例如utf-8。
脚本示例

检查headers,body和mimeType

  1. ### Check response status, headers, and content-type
  2. GET https://httpbin.org/get
  3. > {%
  4.     client.test("Request executed successfully", function() {
  5.         client.assert(response.status === 200"Response status is not 200");
  6.     });
  7.     client.test("Headers option exists", function() {
  8.         client.assert(response.body.hasOwnProperty("headers"), "Cannot find 'headers' option in response");
  9.     });
  10.     client.test("Response content-type is json", function() {
  11.         var type = response.contentType.mimeType;
  12.         client.assert(type === "application/json""Expected 'application/json' but received '" + type + "'");
  13.     });
  14. %}

设置及使用环境变量

在此示例中,我们将从接收到的响应中捕获一个值到环境变量中,然后将其用于后续请求中。

  1. POST https://httpbin.org/post
  2. Content-Type: application/json
  3. {
  4.     "token""my-secret-token"
  5. }
  6. //设置环境变量
  7. > {%
  8.     client.global.set("auth_token", response.body.json.token);
  9. %}
  10. //使用上面定义的变量
  11. GET https://httpbin.org/headers
  12. Authorization: Bearer {{auth_token}}
  13. Content-Type: application/json
  14. {
  15.     "token""my-secret-token"
  16. }
  17. //设置环境变量
  18. > {%
  19.     client.global.set("auth_token", response.body.json.token);
  20. %}
  21. //使用上面定义的变量
  22. GET https://httpbin.org/headers
  23. Authorization: Bearer {{auth_token}}

作者:M_Q_L_

来源:blog.csdn.net/M_Q_L_/article/

details/104895135

362934d250bae8d0e5f0ceb6a33d1332.gif

 
 

Java 8 腰斩!Java 17 暴涨 2300%!!

自从用了这款牛逼的 IDEA 插件,团队的代码写得越来越规范了!!!

目前工资最高的几家外包公司汇总!(2023最新版)

Vue+SpringBoot,一款企业级的进销存管理系统,星标2.7k

Redis 官方可视化工具,功能真心强大!高颜值

不是我吹,这款 IDEA 插件你真没用过!

 
 
 
 
 
 
 
 
  1. 最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
  2. 获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

明天见(。・ω・。)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/681856
推荐阅读
相关标签
  

闽ICP备14008679号