IDEA自带 .http 请求工具文档

基础语法

请求格式

基础格式

Method Request-URI HTTP-Version
Header-field: Header-valueRequest-Body

其中,GET 请求可以省略 Method 不写;HTTP-Version 可以省略不写,默认使用 1.1 版本。

示例:

GET https://www.baidu.com

注释

使用 //# 编写单行注释

示例:

# 百度首页请求
GET https://www.baidu.com

为请求命名

在请求前一行使用特殊注释格式,可以为请求命名。请求命名后,IDEA 中的 Service 面板会展示请求名称,而不是请求路径。
有如下三种方式

  • 使用 ###
  • 使用 # @name
  • 使用 # @name=

示例:

### 百度首页请求
# @name 百度首页请求
# @name=百度首页请求
# 这里还可以加单行注释
GET https://www.baidu.com

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

请求 URL 换行

当请求路径过长,或者 URL 中参数过多时,可以将 URL 换行,使用 Tab 缩进即可。

示例:

GET https://example.com:8080/api/get/html?firstname=John&lastname=Doe&planet=Tatooine&town=Freetown

Form 表单换行

提交 Form 表单时,body 中的参数也可以换行,此时换行不需要用 Tab 缩进。

示例:

POST https://ijhttp-examples.jetbrains.com/post
Content-Type: application/x-www-form-urlencodedkey1 = value1 &
key2 = value2 &
key3 = value3 &
key4 = value4 &
key5 = value5

读取文件作为请求 Body

文件路径可以使用绝对路径或相对路径。使用相对路径时,是相对于当前 .http 文件所在目录。

示例:

POST https://example.com:8080/api/html/post
Content-Type: application/json< ./input.json

上传文件

可以在一个请求中上传一份或多份文件。

示例:

POST https://example.com/api/upload HTTP/1.1
Content-Type: multipart/form-data; boundary=boundary// 直接读取文件作为上传的文件内容
--boundary
Content-Disposition: form-data; name="first"; filename="input.txt"< ./input.txt// 将固定文本作为上传的文件内容
--boundary
Content-Disposition: form-data; name="second"; filename="input-second.txt"Text// 将文件内容作为表单中的文本类型参数提交
--boundary
Content-Disposition: form-data; name="third";< ./input.txt --boundary--

禁止重定向

默认情况下会跟随服务器返回的 301302 重定向,使用 @no-redirect 注解可以禁止跟随。

示例:

// @no-redirect
GET https://example.com/status/301

禁止保存 Cookies

默认情况下会记录服务器返回的 Set-Cookies 头中返回的 Cookies,并在其他请求中携带返回的 Cookies。
可以通过 @no-cookie-jar 注解禁止保存。

示例:

// @no-cookie-jar
GET example.com/api

保存响应

通过 >> 符号将响应结果保存到文件。

示例:

GET {{host}}/api/bs-login/v1/oauth/inner/login?uid={{uid}}>> ./loginResponse.json

高级语法 - 变量

变量命名规则与使用方式

在 HTTP 请求中,可以使用 {{variable}} 格式引用变量。
变量名可以包含:字母、数字、英文下划线_、英文点.

示例:

GET https://www.baidu.com
Authorization: {{authToken}}

变量的类型

按照变量作用域范围,分为如下几种变量。

  • 环境变量
  • 全局变量
  • 脚本内变量
  • 请求内变量
  • 动态变量

环境变量

声明在 .env.json 环境文件中的变量,对所有脚本生效。
在打开一个脚本文件后,可以选择生效的环境。或者在执行请求时,选择一个环境。
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

环境变量文件有两种:

  1. 公有环境变量,文件名为 http.env.json
  2. 私有环境变量,文件名 http.private.env.json
    两种环境变量文件的格式相同,一般建议 HOST、公共参数 放到公有环境变量,密码、认证 Token 等敏感信息放到私有环境变量。私有环境变量会覆盖公有环境变量。

环境变量文件声明在脚本所在目录。JSON 文件第一层的属性 Key 即为环境名称,属性 Value 为此环境的变量。
例如一个包含 testprod 环境的公有变量文件内容为:

{"test": {"host": "http://test.com","uid": "test@xxx.com"},"prod": {"host": "http://prod.com","uid": "test@xxx.com"}
}

例如一个包含 testprod 环境的私有变量文件内容为:

{"test": {"username": "user","password": "pass"},"prod": {"username": "user","password": "pass"}
}

使用时按如下格式引用:

GET {{host}}/api/auth/token?user={{username}}&pass={{password}}
Authorization: Basic {{username}} {{password}}

全局变量

全局变量通过脚本设置。通过 client.global.set 函数设置。
全局变量会覆盖脚本中设置的变量。

示例:

### 获取认证 token
GET {{host}}/api/auth/token?user={{username}}&pass={{password}}<{%client.global.set('authToken', response.data.token);
%}### 访问接口
GET {{host}}/api/user/me
Authorization: {{authToken}}

脚本内变量

脚本内变量声明在 .http 文件中,可以被此文件中的请求访问。注意,声明变量的语句后面的请求,才能访问此变量。
声明格式为:

@变量名 = 变量值

示例:

@uid = liuqingtong@corp.netease.com### 获取测试环境访问 token 
GET {{host}}/api/bs-login/v1/oauth/inner/login?uid={{uid}}

请求内变量

请求内变量声明在请求前的脚本中,仅针对脚本后的一次请求生效。
通过 request.variables.set 函数设置。

示例:

### 获取测试环境访问 token 
<{%
request.variables.set("uid", "liuqingtong@corp.netease.com")
%}GET {{host}}/api/bs-login/v1/oauth/inner/login?uid={{uid}}

动态变量

动态变量是一些动态值,每次获取变量时得到的结果都不同。动态变量命名以 $ 开头。内置动态变量有:

  • $uuid $random.uuid 生成一个 UUID
  • $timestamp UNIX 时间戳
  • $isoTimestamp ISO-8601 格式的时间戳,UTC 时区
  • $randomInt 0-1000 的随机整数
  • $random.integer(from, to) 随机整数,可以指定范围,包括 from,不包括 to
  • $random.float(from, to) 随机浮点数,包括 from,不包括 to
  • $random.alphabetic(length) 生成指定长度的,由大小写字母组成的字符串
  • $random.alphanumeric(length) 生成指定长度的,由大小写字母、数字、下划线组成的 字符串
  • $random.hexadecimal(length) 生成指定长度的十六进制数字
  • $random.email 随机邮箱
  • $exampleServer IDEA 内置的 Web 服务器,仅在 IDEA 中可以访问。
  • $projectRoot 项目根目录,仅在 IDEA 中可以访问。
  • $historyFolder 项目根目录下的 .idea/httpRequests/,仅在 IDEA 中可以访问。

高级语法 - 脚本

脚本类型

.http 文件中可以嵌入或引用 JavaScript 脚本,用于在请求发起前、请求响应后进行数据处理。可以借此实现自动化测试。
使用脚本时,需单独另起一行,以 > 字符开头,后面跟引用脚本路径,或跟嵌入脚本。

引用脚本

示例:

### 获取测试环境访问 token 
GET {{host}}/api/bs-login/v1/oauth/inner/login?uid={{uid}}> ./TokenHandler.js

嵌入脚本

嵌入脚本使用 {%%} 包裹脚本内容,脚本可以换行。

示例:

### 获取测试环境访问 token 
GET {{host}}/api/bs-login/v1/oauth/inner/login?uid={{uid}}> {% 
client.global.set('authToken', response.data.token);
%}

JavaScript 脚本 API

https://www.jetbrains.com/help/idea/http-response-handling-api-reference.html

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

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

相关文章

浅谈去耦电容的作用、选择、布局及其它电容的区别!

在一些文章资料中&#xff0c;去耦电容器被认为是旁路电容器。在其他资料中&#xff0c;去耦电容和旁路电容的区别在于&#xff1a;“旁路电容以输入信号中的干扰为滤波对象&#xff0c;而去耦电容以输出信号的干扰为滤波对象&#xff0c;防止干扰信号返回到输出端。”力量。”…

[密码学]入门篇——加密方式

一、概述 加密方法主要分为两大类&#xff1a; 单钥加密&#xff08;private key cryptography&#xff09;&#xff1a;加密和解密过程都用同一套密码双钥加密&#xff08;public key cryptography&#xff09;&#xff1a;加密和解密过程用的是两套密码 历史上&#xff0c…

day37 贪心算法part6

738. 单调递增的数字 中等 提示 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xff0c;且数字呈 单调递增 。 不知道怎么讲思路……以9287举例&#xff0c;…

基于Java的生活废品回收系统(Vue.js+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 资源类型&资源品类模块3.3 回收机构模块3.4 资源求购/出售/交易单模块3.5 客服咨询模块 四、免责说明 一、摘要 1.1 项目介绍 生活废品回收系统是可持续发展的解决方案&#xff0c;旨在鼓…

python将地理数据导出到postgis

数据格式&#xff1a; 创建test数据库 注意要选择postgis范本 执行代码 import psycopg2 from psycopg2.extras import RealDictCursor from shapely.wkt import dumps from shapely.geometry import Polygon# 数据 data [{name: a,geom:104.059962,30.647005;104.06156,30.…

TinTin DESTINATION MOON|开发者不容错过的 Web3 线下活动来啦!

还记得去年 9 月 17 日的上海吗&#xff1f;「DESTINATION MOON: Web3 Dev Summit Shanghai 2023」迎来了数百名 Web3 行业爱好者的关注和参与。4 场主题演讲、3 场圆桌讨论&#xff0c;近 20 名创新者、开发者、投资人和研究员围绕公链生态、Layer2 竞争、DID、ZKP、安全等热点…

VsCode中使用Anaconda中的python环境

1、今天在新的电脑上安装了VsCode和Anaconda&#xff0c;但是在VsCode却选择不了python的环境&#xff0c;期望结果是下面这样的 2、接着在网上百度&#xff0c;找到了方法&#xff0c;具体方法如下&#xff1a; 2.1需要先在Extensions中安装python 2.2再使用ctrlshiftP后使用…

基于PHP的音乐网站后台管理系统设计与实现

目 录 摘 要 I Abstract II 引 言 3 1 相关技术 5 1.1 PHP技术 5 1.2 MySQL技术 5 1.3ThinkPHP框架 5 1.4 Apache技术 6 1.5 本章小结 6 2系统分析 7 2.1 功能需求 7 2.2 用例分析 7 2.3系统可行性分析 9 2.4 本章小结 10 3 系统设计 11 3.1 总体设计 11 3.2 数据库设计 12 3.…

简单认证个腾讯音乐人教程

认证腾讯音乐人&#xff0c;尊享尊贵头衔&#xff01;&#xff01;你的不凡让世界听见 成功以后可以在QQ音乐、酷狗、全民K歌等等搜到自己歌曲 步骤如下&#xff1a; 首先打开官网&#xff1a;https://y.tencentmusic.com/ 选择音乐人&#xff0c;点击立即入住 如下图点击&…

电脑如何快速生成图片二维码?在线图片生码的制作步骤

多张图片在电脑上如何生成二维码之后预览呢&#xff1f;现在很多场景下都会发现扫码会展现很多的图片&#xff0c;通过手机来获取图片内容&#xff0c;那么图片放入二维码中的制作方法是什么样的呢&#xff1f;下面就通过本篇文章来给大家介绍图片二维码在线制作的方法及步骤&a…

2024年新版CMS内容管理使用,不用回退老版本 使用最新小程序云开发cms内容模型

一&#xff0c;问题描述 最近越来越多的同学找石头哥&#xff0c;说cms用不了&#xff0c;其实是小程序官方最近又搞大动作了&#xff0c;偷偷的升级的云开发cms&#xff08;内容管理&#xff09;以下都称cms&#xff0c;不升级不要紧&#xff0c;这一升级&#xff0c;就导致我…

文献学习-14-一种用于高精度微创手术的纤维机器人

Authors: Mohamed E. M. K. Abdelaziz1,2 †, Jinshi Zhao1,3 †, Bruno Gil Rosa1,2 , Hyun-Taek Lee4 , Daniel Simon3,5 , Khushi Vyas1,2 , Bing Li6,7 , Hanifa Koguna3 , Yue Li1 , Ali Anil Demircali3 , Huseyin Uvet8 , Gulsum Gencoglan9,10, Arzu Akcay11,12, Moham…