HTTP客户端
最后修改时间:2023 年 9 月 8 日使用HTTP Client插件,您可以直接在 IntelliJ IDEA代码编辑器中创建、编辑和执行 HTTP 请求 。

当您需要编写和运行 HTTP 请求时,有两个主要用例:
当您正在开发 RESTful Web 服务并希望确保其按预期工作、可按照规范进行访问并正确响应时。
当您正在开发解决 RESTful Web 服务的应用程序时。在这种情况下,在开始开发之前调查对服务的访问和所需的输入数据会很有帮助。在开发过程中,您还可以从应用程序外部调用此 Web 服务。当您的应用程序导致意外输出,而代码中未检测到逻辑错误,并且您怀疑瓶颈是与 Web 服务的交互时,这可能有助于定位错误。
HTTP 请求存储在.http和.rest文件中,并用图标进行标记。
对 HTTP 文件的支持包括以下功能:
请求、其部分和响应处理程序脚本的代码折叠
根据您的HTTP 请求代码样式重新格式化请求。
请求标头字段和文档标签的内联文档
查看HTTP 请求的结构
请求消息正文中Web 语言的语言注入
如有必要,在开始之前,请在“设置”对话框 ( )的HTTP 代理页面上配置代理设置。CtrlAlt0S
创建HTTP请求文件
您可以从草稿文件或 HTTP 请求类型的物理文件处理HTTP 请求。每个文件可以包含多个请求,您可以根据需要创建任意多个文件。
临时文件可用于在开发过程中测试 HTTP 请求。临时文件不存储在项目内,因此 IntelliJ IDEA 可以修改它们并添加有关请求的其他信息。当从临时文件执行 HTTP 请求时,响应输出文件的链接将添加到请求下方和请求历史文件的顶部。
创建 HTTP 请求临时文件
按并选择HTTP 请求。CtrlAltShiftInsert
物理文件可用于记录、测试和验证 HTTP 请求。物理文件存储在您的项目内部,IntelliJ IDEA 不会修改它们。当从物理文件执行 HTTP 请求时,该文件不会被修改。有关已执行请求的信息以及指向响应输出文件的链接将添加到请求历史记录文件的顶部。
创建物理HTTP请求文件
在“文件”菜单中,指向“新建”,然后单击“HTTP 请求”。
移动 HTTP 请求
您可以使用Move重构将 HTTP 请求从头开始移动到物理文件,以及在物理文件之间移动。F6
在编辑器中,将插入符号放在要移动的请求处,然后执行以下操作之一:
从主菜单或上下文菜单中,选择“重构”|“重构”。移动。
按并选择“移动 HTTP 请求”意图操作。AltEnter
按。F6
在打开的“移动 HTTP 请求”对话框中,执行以下操作:
在“路径”字段中,从列表中选择现有.http文件之一,或单击
以找到该文件。
您还可以手动键入文件的完整路径。如果指定不存在的文件的名称,将自动创建具有所提供名称的新文件。
在请求列表中,选中要移动的请求旁边的复选框。
编写 HTTP 请求
IntelliJ IDEA 使用编辑器格式的 HTTP 请求,它提供了一种简单的方法来创建、执行和存储有关 HTTP 请求的信息。您可以使用以下通用语法直接在创建的 HTTP 请求文件中键入它们:
###
Method Request-URI HTTP-Version
Header-field: Header-value
Request-Body在###分隔符之后,您可以输入前面带有#或 的任何注释//。
提示
要在运行/调试配置、 Search Everywhere和Run Anything中快速找到您的请求,您可以为其指定名称。
笔记
您可以使用编辑器 | 配色方案| HTTP 请求设置可自定义颜色和样式以突出显示请求语法(名称、注释、参数、标头等)。
要加快撰写 HTTP 请求的速度,您可以:
单击工具 | HTTP 客户端 | 在 HTTP 客户端中创建请求。如果在编辑器中打开请求文件,则会将请求模板添加到打开的文件中。否则,这将创建一个新的.http临时文件。
单击
请求编辑器面板顶部的 。在弹出菜单中,选择要添加的请求类型。

或者,使用实时模板。在编辑器中,您可以按 查看可用模板的列表。例如,gtr扩展为简单的 GET 请求;mptr扩展为POST 请求。Ctrl0Jmultipart/form-data

要概述 HTTP 客户端的可能性,您可以浏览HTTP 请求集合,它是一些组合请求的选择。
从 HTTP 请求集合中打开请求
单击请求编辑器面板顶部的示例快捷方式链接。
在弹出菜单中,选择您要打开的 HTTP 请求集合:

笔记
请参阅探索 HTTP 请求语法以获取语法和功能概述,并参阅编辑器规范中的 HTTP 请求以获取完整的格式描述。
转换 cURL 请求
如果您正在使用cURL请求,则可以在 cURL 请求和编辑器格式的 HTTP 请求之间进行转换。
将 cURL 转换为 HTTP 请求
将 cURL 请求粘贴到 HTTP 请求文件中。IntelliJ IDEA 会将其转换为 HTTP 请求格式,并将原始 cURL 请求注释掉以供以后参考。

或者,单击
HTTP 请求编辑器面板顶部的 并选择Convert cURL to HTTP Request。
在“将 cURL 转换为 HTTP 请求”对话框中,键入或粘贴要转换的 cURL 请求。

考虑以下示例 cURL 请求:
curl 'http://httpbin.org/' -H 'Connection: keep-alive' -H 'Accept: text/html' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.9,es;q=0.8'IntelliJ IDEA 会将其转换为以下内容:
# curl 'http://httpbin.org/' -H 'Connection: keep-alive' -H 'Accept: text/html' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: en-US,en;q=0.9,es;q=0.8'
GET http://httpbin.org/
Connection: keep-alive
Accept: text/html
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,es;q=0.8
###该转换器支持以下 cURL 选项:
将 HTTP 请求转换为 cURL
将插入符号放在要转换为 cURL 格式的 HTTP 请求处。
单击并选择转换为 cURL 并复制到剪贴板。AltEnter
或者,您可以单击HTTP 请求编辑器面板顶部的“转换”快捷方式链接,然后选择“将插入符下的 HTTP 请求转换为 cURL 并复制”。
这将根据 HTTP 请求生成 cURL 请求并将其复制到剪贴板。
使用上下文操作生成请求
如果您的 URL 以代码字符串文字或在 JSON、YAML、TOML 和 Properties 文件中开头,则可以快速生成 HTTPhttp请求https。
单击 URL 并按。AltEnter
在打开的上下文菜单中,单击“在 HTTP 客户端中生成请求”。
这将创建一个新的 GET HTTP 请求,指向generated-requests.http 临时文件中的指定 URL 。

根据 OpenAPI 规范创建请求
使用OpenAPI 规范文件时,您可以创建对指定端点的 HTTP 请求。
创建到端点的 HTTP 请求
在 OpenAPI 规范文件中,单击
端点定义旁边的编辑器装订线。
或者,打开查看 | 工具窗口 | 端点,右键单击端点,然后选择在 HTTP 客户端中生成请求。
IntelliJ IDEA 将创建一个新的 HTTP 请求并将其保存在generated-requests.http 临时文件中。
如果您想要快速向端点发送请求并且不想保存它,可以使用端点工具窗口中的HTTP 客户端选项卡。
IntelliJ IDEA 根据可用的 OpenAPI 规范提供请求 URL 和请求正文(JSON 格式)的补全。这不仅适用于本地,也适用于远程规范(将它们添加到 IDE 设置中以启用完成功能)。

重命名端点及其用途
使用重命名重构可以同时重命名定义的端点及其在 HTTP 请求中的用法。
执行以下任一操作:
在 OpenAPI 规范文件中,将插入符号放在要重命名的端点的定义处。
在 HTTP 请求文件中,将插入符号放在要重命名的 URL 路径段处。
选择重构 | 从主菜单或上下文菜单重命名,或按。ShiftF6
在打开的“重命名”对话框中,指定新端点的名称。
预览并应用更改。
IntelliJ IDEA 将重命名端点及其用法。
使用响应处理程序和预请求脚本
使用响应处理程序脚本,您可以以编程方式对收到的 HTTP 响应做出反应。通过使用这些脚本,您可以自动处理接收到的数据并根据您指定的条件对其进行验证。响应处理程序脚本作为 HTTP 请求文件中请求的一部分提供,并在收到响应后立即执行。要查看响应处理示例,请打开带有授权的请求或带有测试和脚本的 请求请求集合。
通过预请求脚本,您可以设置HTTP 请求中使用的变量。
插入响应处理程序脚本
您可以就地或通过引用外部文件将响应处理程序脚本插入到您的请求中。
要就地插入脚本,请在其前面添加
>并将其括在 中{% %}:GET host/api/test > {% // Response Handler Script ... %}要从外部文件插入脚本,请在其前面添加
>:GET host/api/test > scripts/my-script.js
如果响应处理程序脚本有任何输出(错误或client.log的输出),则当您运行请求时,它会显示在“服务”工具窗口的“响应处理程序”选项卡中。
插入预请求脚本
您可以就地或通过引用外部文件将预请求脚本插入到您的请求中。
要就地插入脚本,请在其前面添加
<并将其括在 中{% %}:< {% request.variables.set("petName", "Bella") %} POST https://example.org/pets/{{petName}}要从外部文件插入脚本,请在其前面添加
<:< scripts/my-script.js POST https://example.org/pets/{{petName}}
如果预请求脚本有任何输出(错误或client.log的输出),则当您运行请求时,它会显示在“服务”工具窗口的“预请求处理程序”选项卡中。
导入 JavaScript 代码
有时,您可能需要使用外部文件中的特定功能,例如变量或函数。为此,在预请求和响应处理程序脚本中,您可以使用常规 ES6 导入功能来访问本地 JavaScript 文件中定义的变量和函数。
从 JavaScript 文件导出所需的值。HTTP Client 支持
export以下格式的语句:export let name1, name2/*, … */; // also var export const name1 = 1, name2 = 2/*, … */; // also var, let export function functionName() { /* … */ } export { name1, /* …, */ nameN }; export { variable1 as name1, variable2 as name2, /* …, */ nameN }; export default expression; export default function functionName() { /* … */ } export default function () { /* … */ }将所需的值导入到响应处理程序或预请求脚本中。HTTP Client 支持
import以下格式的语句:import defaultExport from "module-name"; import * as name from "module-name"; import { export1 } from "module-name"; import { export1 as alias1 } from "module-name"; import { export1, export2 } from "module-name"; import { export1, export2 as alias2, /* … */ } from "module-name"; import defaultExport, { export1, /* … */ } from "module-name"; import defaultExport, * as name from "module-name"; import "module-name"; // side effect import笔记
如果您想从外部文件运行一些测试并且不需要从中导入任何内容,则可以在响应处理程序脚本中使用副作用导入,例如
import 'test-scripts/mytests'. 如果您有通用测试并希望在多个请求中重用它们,同时又保留为某些请求编写(或导入)单独测试的能力,这可能会很有用。
响应处理程序脚本和预请求脚本是用 JavaScript ECMAScript 6 编写的,并提供由捆绑库处理的编码帮助和文档HTTP Pre-Request and Response Handler。对于就地脚本,此功能会自动启用。对于外部脚本,您需要手动启用它。
为响应处理程序和预请求脚本启用 JavaScript 编码帮助
按(查找操作)。CtrlShift0A
键入Use JavaScript Library,单击相应的操作,然后在打开的上下文菜单中选择HTTP Pre-Request and Response Handler。
该HTTP Response Handler库公开了两个用于编写响应处理程序脚本的对象:
该
client对象存储会话元数据,可以在脚本内修改该元数据。该client状态将保留,直到您关闭 IntelliJ IDEA。保存在client.globalas中的每个变量都variable_name可以被后续的 HTTP 请求访问为{{variable_name}}。response保存有关收到的响应的信息:其内容类型、状态、响应正文等。
要在编辑器中打开HTTP 响应处理程序库,请将脱字符号放在库对象上,然后按。Ctrl0B
响应处理程序脚本可以包含测试,它允许您使用 HTTP 客户端作为测试框架。要创建测试,请调用该client.test(testName, function)方法。在测试中,您可以通过调用client.assert(condition, message)方法来断言条件,例如:
GET https://httpbin.org/status/200
> {%
client.test("Request executed successfully", function() {
client.assert(response.status === 200, "Response status is not 200");
});
%}执行HTTP请求
如果您要测试自己的 Web 服务,请确保它已部署并正在运行。
如果您定义了环境,请在请求编辑器面板顶部的运行方式列表中选择一个环境。
在装订线中,单击
请求旁边的 。
如果您在.http文件中定义了多个 HTTP 请求,则可以按顺序运行所有请求。为此,请单击请求编辑器面板顶部的 。
执行请求时,IntelliJ IDEA 会自动为其创建专用的临时HTTP 请求运行/调试配置。如有必要,您可以将其保存为永久运行/调试配置。
在浏览器中打开请求
您可以在“设置”对话框 ( )的Web 浏览器和预览页面上指定的浏览器中打开 HTTP 请求。CtrlAlt0S
按并选择“在网络浏览器中打开”意图操作。AltEnter
使用 HTTP 请求运行/调试配置
当您从编辑器执行 HTTP 请求时,IntelliJ IDEA 会自动使用请求参数创建临时运行/调试配置。临时运行/调试配置的工作方式与永久运行/调试配置相同。您可以使用“运行/调试配置”对话框更改其设置,并可选择将其保存为永久设置。
修改 HTTP 请求运行/调试配置
保存临时 HTTP 请求运行/调试配置
在“运行/调试配置”选择器中,选择“保存 <配置名称>”。
在“运行/调试配置”对话框中,选择配置并单击
。
使用运行/调试配置执行请求
在运行/调试配置选择器中,选择所需的运行配置。然后单击
主工具栏上的 或按。ShiftF10
按,从列表中选择所需的运行配置,然后按。AltShiftF10Enter
查看来自 Web 服务的响应
当您执行 HTTP 请求时,IntelliJ IDEA 会自动将响应保存到.idea

查看收到的回复
切换到“服务”工具窗口,该窗口在收到响应后会自动打开。
默认情况下,服务器响应以请求标头中通过内容类型字段指定的格式显示。要将响应转换为其他格式,请单击
并选择Text、JSON、XML或HTML。

如果响应包含二进制文件,则该文件也会保存在.idea