WebStorm 2025.2 Help

HTTP 客户端

借助 HTTP Client 插件,您可以直接在 WebStorm 代码编辑器 中创建、编辑并执行 HTTP 请求。

HTTP 请求示例

需要组成并运行 HTTP 请求的两种主要场景:

  • 当您正在开发 RESTful Web 服务,想要确保其按预期工作,符合规范并能正确响应时。

  • 当您正在开发与 RESTful Web 服务交互的应用程序。 在这种情况下,在开始开发之前调查该服务的访问方式和所需输入数据会有所帮助。 在开发过程中,您也可以从应用程序外部调用该 Web 服务。 这有助于在您的应用程序产生意外输出但未检测到逻辑错误时,定位问题所在,判断瓶颈是否出在与 Web 服务的交互。

HTTP 请求存储在 .http .rest 文件中,并使用 HTTP 文件图标 图标标识。

对 HTTP 文件的支持包括以下功能:

如有必要,在开始之前,请在 HTTP 代理 页签的 设置 对话框中配置 Proxy 设置(Ctrl+Alt+S)。

创建 HTTP 请求文件

您可以通过临时文件或者 HTTP 请求 类型的物理文件处理 HTTP 请求。 每个文件可以包含多个请求,您可以根据需要创建任意数量的文件。

临时文件 可用于在开发过程中测试 HTTP 请求。 临时文件不存储于项目中,因此 WebStorm 可修改并添加关于请求的附加信息。 从临时文件执行 HTTP 请求后,会在请求下方以及 请求历史记录 文件顶部添加指向响应输出文件的链接。

创建临时 HTTP 请求文件

  • 按下 Ctrl+Alt+Shift+Insert 并选择 HTTP 请求

物理文件 可用于记录、测试和验证 HTTP 请求。 物理文件存储在项目中,WebStorm 不会修改它们。 从物理文件执行 HTTP 请求不会修改该文件。 有关已执行请求的信息以及指向响应输出文件的链接已添加到 请求历史记录文件的顶部。

创建物理 HTTP 请求文件

  • 文件 菜单中,指向 新建 ,然后单击 HTTP 请求

移动 HTTP 请求

您可以使用 Move重构操作 F6 将 HTTP 请求从 scratch 文件移动到物理文件,也可以在物理文件之间移动。

  1. 在编辑器中,将插入符号置于需移动的请求上,然后执行以下操作之一:

    • 在主菜单或上下文菜单中,选择 重构 | 移动

    • 按下 Alt+Enter ,然后选择 移动HTTP 请求 意图操作

    • 按下 F6

  2. 在打开的 移动HTTP 请求 对话框中,执行以下操作:

    1. 路径 字段中,从列表中选择一个已有的 .http 文件,或单击 浏览按钮 定位该文件。

      您还可以手动输入文件的完整路径。 如果您指定的是不存在的文件名,则会自动创建一个具有该名称的新文件。

    2. 请求 列表中,选中您希望移动的请求旁边的复选框。

    移动 HTTP 请求

编写 HTTP 请求

WebStorm 使用 HTTP request in Editor格式,以简便方式创建、执行并存储 HTTP 请求的信息。 您可以使用以下通用语法,直接在 创建的 HTTP 请求文件中输入请求内容:

### Method Request-URI HTTP-Version Header-field: Header-value Request-Body

### 分隔符之后,您可以输入以 #// 开头的任意注释。

若要加快编写 HTTP 请求的速度,您可以:

  • 单击 工具 | HTTP 客户端 | 在HTTP 客户端中创建请求。 如果编辑器已打开请求文件,则此操作会向已打开的文件中添加一个请求模板。 否则,将创建一个新的 .http scratch 文件。

  • 单击请求编辑面板顶部的 添加请求按钮。 在弹出菜单中,选择要添加的请求类型。

添加 HTTP 请求

或者,使用 live templates。 在编辑器中,您可以按下 Ctrl+J 查看可用模板列表。 例如, gtr 将展开为一个简单的 GET 请求; mptr 将展开为一个 multipart/form-data POST 请求。

创建自定义 HTTP 方法

如果某个 Web 服务要求使用自定义 HTTP 方法,您可以将这些方法添加到 WebStorm,并在 HTTP 请求中使用它们。

  1. .http 文件中,使用大写字母输入自定义方法。

  2. 当该方法被标记为未知时,按下 Alt+Enter (显示上下文操作 ),然后选择 添加自定义 HTTP 方法

添加自定义 HTTP 方法

现在,WebStorm 会将其识别为有效的 HTTP 方法。 您可以在 IDE 设置(Ctrl+Alt+S )中的 工具 | HTTP Client | 自定义 HTTP 方法 查看所有自定义 HTTP 方法(并添加新的方法)。

HTTP/2

从 2024.1 版本开始,WebStorm 在 HTTP 请求中支持 HTTP/2。 您可以在 URL 部分之后指定 HTTP 版本,例如:

GET https://example.org HTTP/2

如果未指定版本,HTTP Client 会尝试对安全连接使用 HTTP/2(协商失败时回退到 HTTP/1.1),对非安全连接使用 HTTP/1.1。

选择 HTTP 版本

  1. 在请求 URL 后添加一个空格,然后按 Ctrl+Space 或开始键入 HTTP

  2. 在自动补全列表中,选择建议的值之一:

    • HTTP/1.1 强制使用 HTTP/1.1。

    • HTTP/2 启用 HTTP/2。

    • HTTP/2 (Prior Knowledge) 使用 HTTP/2 发送请求而不进行 HTTP/1.1 升级。 如果您明确知道服务器能够处理 HTTP/2 连接,请使用此项。

    启用 HTTP/2

若要了解 HTTP Client 功能的概况,您可以浏览 HTTP 请求集合 ,其中包含一些预定义请求。

从 HTTP 请求集合中打开请求

  1. 点击请求编辑面板顶部的 示例 快捷链接。

  2. 在弹出菜单中,选择要打开的 HTTP 请求集合:

    打开 HTTP 请求集合弹窗

转换 cURL 请求

如果您正在处理 cURL请求,可以在其与 HTTP request in Editor格式之间进行转换。

将 cURL 转换为 HTTP 请求

  • 将 cURL 请求粘贴到 HTTP 请求文件中。 WebStorm 将其转换为 HTTP 请求格式,并将原始的 cURL 请求以注释形式保留,以供参考。

    curl -X GET --location "https://httpbin.org/status/200"
    # curl -X GET --location "https://httpbin.org/status/200" GET https://httpbin.org/status/200
  • 或者,点击 HTTP 请求编辑器面板顶部的 将 cURL 转换为 HTTP 请求 ,然后选择 将cURL 转换为 HTTP 请求

    将 cURL 转换为 HTTP 请求 对话框中,输入或粘贴您想要转换的 cURL 请求。

请参考以下示例 cURL 请求:

curl 'https://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'

WebStorm 会将其转换为如下格式:

# 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 选项:

选项

说明

-X, --request

要使用的请求方法。

-H, --header

要在请求中包含的请求头部。

-u, --user

--basic

--digest

待提供给请求的用户凭据,以及要使用的授权方法。

-d, --data, --data-ascii

--data-binary

--data-raw

--data-urlencode

要在 POST 请求中发送的数据。

-F, --form

要在 POST 请求中发送的 multipart/form-data 消息。

--url

要获取的 URL(主要用于在配置文件中指定 URL 时)。

-i, --include

定义是否在输出中包含 HTTP 响应头。

-v, --verbose

启用详细操作模式。

-L, --location

如果请求的页面已移动到其他位置,则启用重新发送请求的功能。

将 HTTP 请求转换为 cURL

  1. 将插入符放在您想要转换为 cURL 格式的 HTTP 请求上。

  2. 按下 Alt+Enter 并选择 转换为cURL 并复制到剪贴板

    将 HTTP 请求转换为 cURL

    或者,您可以点击 HTTP 请求编辑器面板顶部的 转换(C) 快捷链接,然后选择 将光标所在的 HTTP 请求转换为 cURL 并复制

    将 HTTP 请求转换为 cURL

这将基于 HTTP 请求生成一个 cURL 请求并复制到剪贴板。

导入 Postman Collection 和环境

Postman collection 是将相关 HTTP 请求分组的一种方式。 在 Postman 中,您可以以 JSON 格式导出 collection 和变量。 在 HTTP Client 中,您可以将此类文件导入到 WebStorm,以将其转换为相应的 .http 和环境文件。

将 Postman Collection 导入 HTTP 客户端

  1. 从 Postman 导出 collection。 如果您希望在 WebStorm 中使用环境文件,也可以导出环境文件。

  2. 通过以下任一方式将文件导入 WebStorm:

    • 如果导出的文件在您的项目中,请右键点击该文件,并选择 将集合转换为 .http 文件

    • 打开任何 .http 文件,在工具栏中点击 导入 HTTP 请求 ,然后选择 Postman 集合

    • 按下 Ctrl+Shift+A ,开始输入 Import from Postman Collection File ,然后选择相应操作。

  3. 如果您还希望导入环境文件,请选择 附加环境 并指定该文件。 该文件会被转换为 HTTP Client 环境格式,并且该环境将为指定的 .http 文件选中。

  4. 在出现的窗口中,点击 转换

    从 Postman 窗口导入

使用上下文操作生成请求

如果您的代码字符串或 JSON、YAML、TOML 和 Properties 文件中包含以 httphttps 开头的 URL,您可以快速生成 HTTP 请求。

  1. 点击某个 URL,然后按下 Alt+Enter

  2. 在打开的上下文菜单中,点击 在HTTP 客户端中生成请求

    在 HTTP 客户端中生成请求

    这将在 generated-requests.http 临时文件中创建一个新的 GET HTTP 请求,请求该 URL。

根据 OpenAPI 规范生成请求

在处理 OpenAPI 规范 文件时,您可以为指定的端点创建 HTTP 请求。

为端点创建 HTTP 请求

  • 在 OpenAPI 规范文件中,点击位于端点定义旁编辑器标记区域的 在 HTTP 客户端中打开按钮

    为端点生成 HTTP 请求
  • 或者,打开 视图 | 工具窗口 | 端点 ,右键点击某个端点,然后选择 在 HTTP Client 中生成请求

WebStorm 会创建一个新的 HTTP 请求,并将其保存在 generated-requests.http 临时文件 中。

如果您希望快速向某个端点发送请求并且无需保存,可以在 HTTP Client 选项卡中,使用 端点 工具窗口。

WebStorm 会根据可用的 OpenAPI 规范,提供请求 URL 和请求体(JSON 格式)的代码补全。 这不仅适用于本地规范,也适用于远程规范(在 IDE 设置中添加以启用补全)。

Body 补全

重命名端点及其使用位置

使用 重命名重构 ,同时重命名定义的端点及其在 HTTP 请求中的用法。

  1. 请执行以下任一操作:

    • 在 OpenAPI 规范文件中,将插入符置于要重命名的端点定义上。

    • 在 HTTP 请求文件中,将插入符置于要重命名的 URL 路径段上。

  2. 从主菜单或上下文菜单中选择 重构 | 重命名 ,或按下 Shift+F6

  3. 在打开的 重命名 对话框中,指定新 endpoint 的名称。

  4. 预览并应用更改。

WebStorm 将重命名该 endpoint 及其用法。

重命名 HTTP 端点

使用响应处理器和预请求脚本

借助响应处理脚本,您可以通过编程方式对接收到的 HTTP 响应做出反应。 使用这些脚本,您可以自动处理接收到的数据,并根据指定的条件对其进行验证。 响应处理脚本作为请求的一部分包含在 HTTP 请求文件中,并在接收到响应后立即执行。 要查看响应处理示例,请打开 带授权的请求带有测试和脚本的请求 requests collections

借助前置请求脚本,您可以设置 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 import 功能访问本地 JavaScript 文件中定义的变量和函数。

  1. 从 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 () { /* … */ }
  2. 将所需的值导入到响应处理或前置请求脚本中。 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

响应处理脚本和前置请求脚本编写使用 ECMAScript 2023 版本的 JavaScript,代码辅助和文档支持由捆绑的 HTTP Pre-Request and Response Handler 库提供。 对于内联脚本,该功能会自动启用。 对于外部脚本,您需要手动启用该功能。

为响应处理和预请求脚本启用 JavaScript 编码辅助功能

  1. 按下 Ctrl+Shift+A查找操作)。

  2. 键入 使用 JavaScript 库 ,点击对应操作,然后在打开的上下文菜单中选择 HTTP 预请求和响应处理器

HTTP Response Handler 库公开了两个对象,可用于编写响应处理脚本:

  • client 对象存储会话元数据,可在脚本中进行修改。 client 的状态会一直保留,直到关闭 WebStorm。 在 client.global 中以 variable_name 保存的每个变量都可以作为 {{variable_name}} 被后续的 HTTP 请求访问。

  • response 包含接收到的响应的信息:其内容类型、状态、响应正文等。

要在编辑器中打开 HTTP 响应处理器 库,请将插入符号置于该库对象上,然后按下 Ctrl+B

响应处理脚本可以包含测试,使您可以将 HTTP Client 用作测试框架。 要创建测试,请调用 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"); }); %}

使用 Structure 工具窗口浏览 .http 文件

如果在 .http 文件中包含多个请求, 结构 工具窗口可帮助您快速预览文件并在其中导航。 该工具窗口还显示请求部分,例如标头、请求正文、前置请求脚本以及响应处理脚本。

  1. 打开 结构 工具窗口: 视图 | 工具窗口 | 结构

    或者,按下 Alt+7

  2. 结构 工具窗口中,点击 HTTP 方法或请求名称或请求中的任意部分。

HTTP 客户端 Structure 工具窗口

您还可以在该处右键点击请求并选择 运行按钮 来发送请求。

执行 HTTP 请求

执行单个请求

  1. 如果您要测试自己的 Web 服务,请确保它已部署并正在运行。

  2. 如果已定义 环境 ,请在请求编辑器面板顶部的 运行方式 列表中选择一个环境。

  3. 在标号区中,点击请求旁的 运行按钮

按顺序执行多个请求

您可以一次性运行 .http 文件中的所有请求。 这在处理复杂场景时非常有用,例如从服务器请求特定数据,将其保存为 client.global 变量,并发送包含该数据的后续请求。

  1. 打开一个 .http 文件。

  2. 在编辑器面板顶部,单击 运行文件中的所有请求)。

当请求执行时,WebStorm 会自动为其创建专用的临时 HTTP Request run/debug configuration。 如有需要,您可以将其 保存为永久运行/调试配置

使用 HTTP 请求的运行/调试配置

当您 从编辑器执行 HTTP 请求 时,WebStorm 会根据该请求参数自动创建临时运行/调试配置。 临时运行/调试配置的工作方式与永久运行/调试配置相同。 您可以使用 运行/调试配置 对话框更改其设置,并选择将其保存为永久配置。

修改 HTTP 请求的运行/调试配置

  1. 执行以下任一操作:

    • 在编辑器中,右键单击请求,在上下文菜单中选择 修改运行配置…

    • 或者,在主菜单中转到 运行 | 编辑配置 ,并从 HTTP 请求 列表中选择所需的运行/调试配置。

  2. 在必要时更改配置参数:

    • 环境 列表中,选择一个 environment ,该配置将定义请求中使用的环境变量。

    • 文件 字段中,提供 HTTP request file 的路径。 您可以手动输入路径并在输入时使用路径补全 Ctrl+Space ,或点击 从磁盘打开 并在打开的对话框中选择所需文件夹。

    • 如果请求文件包含多个请求,请在 请求(R) 列表中选择要执行的请求名称。

保存临时 HTTP 请求运行/调试配置

执行以下任一操作:

  • 运行/调试配置 选择器中,选择 保存 <configuration name>

  • 运行/调试配置 对话框中,选择配置并点击 保存按钮

使用运行/调试配置执行请求

执行以下任一操作:

  • 运行/调试配置 选择器中,选择所需的运行配置。 然后点击主工具栏上的 运行按钮 ,或按 Shift+F10

  • Alt+Shift+F10 ,从列表中选择所需的运行配置,并按 Enter

    运行配置弹窗

从其他 .http 文件导入 HTTP 请求

WebStorm 允许您从其他 .http 文件导入 HTTP 请求。 您可以:

点击 示例 ,然后选择 包含 Include 的请求 ,即可在 IDE 中获取此功能的语法示例。

从另一个 .http 文件中运行所有请求

  1. 在您的 .http 文件中输入 run ,后跟您想要包含的另一个 .http 的名称。 如果文件位于同一目录中,请输入其名称。 否则,请输入其路径。 例如:

    run ./myFolder/get-requests.http
  2. 点击 运行按钮 ,位于 run 旁边,以发送该文件中的所有请求。

从另一个 .http 文件中运行特定请求

  1. .http 文件顶部输入 import ,后跟包含所需请求的另一个 .http 的名称。

  2. 输入 run 并指定您要运行的请求名称。

    您可以按 Ctrl+Space 查看导入文件中提供的所有请求。

    从另一个 .http 文件中运行特定请求

覆盖从导入的 .http 文件中获取的变量

如果导入的 .http 文件包含变量,您可以为特定执行指定或更改其值。

  1. 输入 run 并指定一个 .http 文件或请求的名称。

  2. 在请求或文件名称后输入以 (@variable=value) 格式表示的变量。 如需指定多个变量,请使用顿号进行分隔。 例如:

    import new-requests.http run #GET request with one var (@host=example.com) run #GET request with two vars (@host=example.com, @user=userName)

查看来自 Web 服务的响应

执行 HTTP 请求后,WebStorm 会自动将响应保存到 .idea/httpRequests/ 目录下的单独文件中。 您可以使用 requests history 查看最近存储的 50 个响应,并导航至相应文件。 如果请求是从临时文件执行的,其响应输出链接也会添加在原始请求下方:

HTTP 响应

查看收到的响应

  1. 切换到 服务工具窗口 ,该窗口在收到响应后会自动打开。

  2. 默认情况下,服务器响应以请求头中 content-type 字段指定的格式显示。 若需将响应转换为其他格式,请点击 响应视图设置 ,并选择 文本JSONXMLHTML

    更改响应格式

如果响应包含二进制文件,该文件也会保存在 .idea/httpRequests/ 目录中。 如果响应是图像、PDF 或 HTML 文件,您可以在 IDE 中直接预览。

服务 工具窗口中预览图像:

包含图像的 HTTP 响应

服务 工具窗口中预览 PDF 文件。 要在 服务 工具窗口中禁用 PDF 文件预览,请点击 响应视图设置 并取消选中 启用内联 PDF 预览 选项。

包含 PDF 的 HTTP 响应

如果响应是 HTML 文件,您可以点击 显示预览 ,在编辑器标签页中使用基于 JCEF 的浏览器进行预览。

包含 HTML 的 HTTP 响应

如果您有一个 response handler script ,作为该脚本一部分执行的测试结果将在 测试 标签页的 服务 工具窗口中显示。 您可以点击每个测试,快速导航到相应 response handler script 中的测试源代码。

Services 工具窗口的 Tests 选项卡

如果您订阅了事件流,WebStorm 会在 服务 工具窗口中显示事件。 在此,您还可以查看客户端与服务器之间连接的状态,并点击 停止 来终止连接。 根据内容类型(text/event-streamapplication/x-ndjson ),响应将被格式化为纯文本或按行分隔的 JSON。 您可以编写一个 response handler script 来 逐行处理事件流

服务器发送事件

重定向事件流至文件目前尚不支持。

在编辑器中打开响应文件

  1. 将光标放置在要打开的响应链接上。

  2. 执行以下操作之一:

    • 在主菜单中,依次转到 视图 | 跳转到源代码

    • Ctrl+BF4

    • 服务 工具窗口或编辑器中(对于临时文件), Ctrl+Click 响应行中的链接。

      打开响应信息提示
      从临时文件打开响应

使用 JSONPath 从 JSON 响应中提取数据

HTTP Client 支持 JSONPath 查询,允许您从收到的 JSON 文档中解析并提取数据。 为此,请在 response handler script 中使用以下函数:

jsonPath(ObjectToParse, JSONPathExpression)

使用 jsonPath 代码模板可快速插入此函数。

  1. 请求后,在 response handler script 部分中开始键入 > jsonPath

  2. Enter 可展开代码模板并完成 JSONPath 表达式。

    例如,此表达式将检索并打印 slideshow 对象中 slides 数组的第一个元素的 title 字段值:

    GET https://examples.http-client.intellij.net/json > {% client.log(jsonPath(response.body, "$.slideshow.slides[0].title",)) %}

    服务 工具窗口的 响应处理器 标签页中预览获取的值。

使用 XPath 从 XML 响应中提取数据

HTTP Client 支持 XPath 表达式,允许您从收到的 XML 文档中解析并提取数据。

  1. response handler script 中使用以下函数:

    xpath(XMLToParse, XPathExpression)
  2. XMLToParse 中输入要解析的 XML 内容(例如, response.body ),在 XPathExpression 中输入您的 XPath 表达式。

例如:

GET https://examples.http-client.intellij.net/xml > {% client.log(xpath(response.body, '//slide[@type="all"][1]/title/text()')) %}

在临时文件中比较响应

从临时文件执行请求后,响应输出文件的链接会添加在原始请求下方。

  • 执行以下任一操作:

    • 将光标放置在响应文件的链接上。 按 Alt+Enter 并选择 与 <response name> 比较 意图操作。

    • 点击边距中的 比较响应 ,并从列表中选择 与 <response name> 比较

      比较响应(菜单)

在请求历史记录中比较响应

从物理文件执行请求后,响应输出链接将添加到 请求历史记录 中。

  1. 将光标放置在响应文件链接上。 在主菜单中转到 视图 | 跳转到源代码 ,或按 Ctrl+BF4 以在新的编辑器标签页中打开此文件。

  2. 在主菜单中转到 视图 | 比较 ,或按 Ctrl+D。 WebStorm 会提示您从 httpRequests 文件夹中打开响应文件。

  3. 选择要与当前文件进行比较的响应文件并点击 打开

两个响应文件将会在 Diff Viewer 中打开,允许您比较其内容:

在文件的差异查看器中比较响应

查看请求历史记录

WebStorm 会自动将最近执行的 50 个请求保存到 http-requests-log.http 文件中,该文件在项目级别保存在 .idea/httpRequests/ 目录下。 借助请求历史记录,您可以快速导航至特定响应并 重新发送请求。 如果从请求历史记录中重新发送请求,其执行信息和响应输出链接会添加到请求历史文件顶部。

打开请求历史记录

  • 点击 显示 HTTP 请求历史记录 位于请求编辑面板顶部。

  • 从主菜单中选择 工具 | HTTP 客户端 | 显示HTTP 请求历史记录

请求历史记录

将输出重定向到自定义文件或目录

  • HTTP Client 可将输出重定向到自定义文件或目录。 它支持用于强制重定向和软重定向的两个运算符:

    • >> 运算符始终创建一个新文件,如果请求的文件名已存在,则为文件名添加 -n 后缀。

    • 如果文件已存在, >>! 运算符将覆盖该文件。

管理 Cookie

通过响应接收的 cookie 会自动保存到 .idea/httpRequests/ 目录下专用的 http-client.cookies 文件中。 可保存的 cookie 数量限制为 300。 cookie 的 namevalue 会自动包含在之后发送至匹配该 cookie 所指定 domainpath 的每个请求中,前提是尚未达到 expiry date

如果希望 cookie 永不过期,您可以将 -1 输入为 date 参数。 例如:

# domain path name value date .example.com / userId 0x4d2 -1

如果希望在 HTTP 请求中设置自定义 cookie,您可以使用 Cookie header。 将 cookie 输入为由分号分隔的 name=value 键值对列表,例如:

GET http://localhost:80/api Cookie: theme=dark; country=France

gRPC 请求

HTTP Client 支持 gRPC 请求。 为了让 HTTP Client 将请求视为 gRPC 请求,请使用 GRPC 关键字作为开头。

基于 .proto 文件,WebStorm 提供对 gRPC 的补全支持:所有已知的 gRPC 服务、特定服务器的 unary 和 server-streaming 方法,以及请求正文中可接受消息的字段。 如果项目中没有 .proto 文件,而服务器支持 gRPC reflection ,则仍可使用代码补全功能,该功能会向 HTTP 客户端提供可访问服务的信息。

开始之前

从 proto 文件生成 gRPC 请求

  • 在 proto 文件中,点击 RPC 方法旁的 gRPC在HTTP 客户端中生成请求

发送 gRPC 元数据

  • GRPC 请求下方,使用以下语法输入 gRPC 元数据: Metadata-key: Value

    例如:

    GRPC localhost:8080 X-Myhostname: Example.org

使用安全 gRPC

您可以发起由服务器端 TLS 保护的连接。

  • 在地址前输入 grpcs ,例如:

    GRPC grpcs://ijhttp-examples.jetbrains.com/hello.HelloService/SayHello

WebSocket 请求

HTTP Client 支持 WebSocket 请求。 为了让 HTTP Client 将请求视为 WebSocket 请求,请以 WEBSOCKET 关键字加上服务器地址作为开头。 请求具有以下结构:

WEBSOCKET ws://localhost:8080/websocket Content-Type: application/json // Used for content highlighting only // Request body, for example: { "message": "First message sent on connection" } === // message separator { "message": "Second message" // will be sent right after the previous one } === wait-for-server // keyword used to wait for the server response { "message": "Send this after the server response" }

为了加快编写 WebSocket 请求的速度,您可以:

  • 点击 “添加请求”按钮 ,位于 .http 文件的编辑面板顶部,然后选择 WebSocket 请求

  • .http 文件中输入 wsr ,然后按 Enter 应用 WebSocket 模板。

发送多个消息

  • 使用 === 分隔符可发送多个消息:

    { "message": "First message sent on connection" } === // message separator { "message": "Second message" } === { "message": "Third message" }

服务器响应后发送消息

  • 在消息前输入 === wait-for-server

    这将使 HTTP Client 在发送消息前等待服务器响应。 通过重复 === wait-for-server 行,您可以等待多个响应。 例如,以下消息将会在收到 3 个服务器响应后发送:

    === wait-for-server === wait-for-server === wait-for-server { "message": "This messages is sent after 3 server responses" }

交互式发送消息

建立连接后,您可以直接在 服务 工具窗口与服务器进行交互。 您可以发送消息并查看服务器对每个新消息的响应。

  1. 服务 工具窗口中,选择一个已建立的连接。

  2. 在窗口下部的 要发送到 WebSocket 的消息 下方输入消息内容。

  3. 在其右侧选择消息格式:纯文本、JSON、XML 或 HTML。

  4. Ctrl+Enter 发送请求。

在窗口上部,您将看到服务器响应。

Services 工具窗口

GraphQL

WebStorm 支持在 HTTP 请求正文中发送 GraphQL 操作。 您可以通过 HTTP 或 WebSocket 发送这些操作。

使用 GraphQL 查询组成 HTTP 请求

  1. .http 文件中,输入 GRAPHQL 关键字以及服务器地址。

  2. 在请求正文中编写您的 GraphQL 操作(查询、变更或订阅),例如:

    ### HTTP request with GraphQL query GRAPHQL http://localhost:8080/graphql query { toDos { title, completed, author { username } } }

为了加快编写包含 GraphQL 查询的 HTTP 请求,您可以:

  • 单击位于 .http 文件编辑器面板顶部的 “添加请求”按钮 ,然后选择 GraphQL 查询请求

  • .http 文件中,键入 gqlr ,然后按 Enter 应用 GraphQL 代码模板。

使用 GraphQL 变量

在 HTTP 请求正文中,若希望将一些动态数据与查询字符串分开传递,您可以使用 GraphQL 变量。

  • 在查询部分之后,输入一个 JSON 变量字典:

    query ($name: String!, $capital: String!) { country(name: $name, capital: $capital) { name capital } } { "name": "France", "capital": "Paris" }

    您还可以将 HTTP Client 环境变量 用作 GraphQL 变量的值。 例如,在此 JSON 中, "{{Author}}" 是一个环境变量;运行时的取值取决于发送请求时选择的环境:

    { "author": "{{Author}}" }

配置代理设置

  1. 设置 对话框(Ctrl+Alt+S )中,在 外观与行为 下选择 系统设置 ,然后选择 HTTP 代理

  2. 在打开的 HTTP Proxy 对话框中,选择 手动代理配置 并指定以下内容:

    • 主机名 字段和 端口号 字段中输入代理主机名和端口号。

    • 若要启用身份验证,请选中 代理身份验证 复选框,并在相应字段中输入用户名和密码。

设置客户端 SSL/TLS 证书

如果 HTTP 服务器要求通过 SSL/TLS 认证以实现安全通信,您可能需要在发送 HTTPS 请求前指定客户端证书。 在 HTTP Client 中,您可以使用 私有环境文件 设置客户端证书。

指定证书路径

  1. .http 文件中,在 运行方式 列表中选择 将环境添加到Private 文件…

  2. 在打开的 http-client.private.env.json 文件中,将 SSLConfiguration 对象添加到所需环境中。 在 clientCertificate 中输入您的客户端证书路径。 如果证书密钥存储在单独的文件中,请在 clientCertificateKey 中输入其路径。 例如:

    { "dev": { "MyVar": "SomeValue", "SSLConfiguration": { "clientCertificate": "cert.pem", "clientCertificateKey": "MyFolder/key.pem" } } }

    或者,您也可以将 clientCertificateclientCertificateKey 描述为对象,从而能够除路径外还指定证书格式。 例如:

    { "dev": { "SSLConfiguration": { "clientCertificate": { "path": "file.crt", "format": "PEM" }, "clientCertificateKey": { "path": "file.key", "format": "DER" } } } }

设置证书密码

如果在生成客户端证书时使用了密钥短语,您应向 HTTP Client 提供该密钥短语。

  1. http-client.private.env.json 文件中,将 "hasCertificatePassphrase": true 添加到 SSLConfiguration 对象中,例如:

    { "dev": { "SSLConfiguration": { "clientCertificate": "file.crt", "hasCertificatePassphrase": true } } }
  2. 单击边缘处的 设置证书密码的值 图标,或者将光标置于 hasCertificatePassphrase ,然后按 Alt+Enter 并选择 设置'Certificate passphrase' 的值

  3. 在打开的窗口中输入您的证书密钥短语。

    HTTP Client 安全值窗口

如果您现在不希望输入密钥短语,可以省略第二步。 在这种情况下,WebStorm 会在执行 HTTPS 请求时提示您输入密钥短语。

禁用证书验证

在开发过程中,您可能使用了带有自签名或已过期证书的主机。 如果您信任该主机,可以禁用其证书的验证。

  • http-client.private.env.json 文件中,将 verifyHostCertificate": false 添加到 SSLConfiguration 对象中。 例如:

    { "sslTest": { "SSLConfiguration": { "verifyHostCertificate": false } } }

如果在该环境中运行请求,WebStorm 将不会验证主机证书。

最后修改日期: 2025年 9月 26日