# HTTP 客户端

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com.cn/help/idea/llms.txt).

通过  HTTP Client  插件，您可以直接在 IntelliJ IDEA [code editor](using-code-editor.html) 中创建、编辑和执行 HTTP 请求。

![示例 HTTP 请求](https://resources.jetbrains.com.cn/help/img/idea/2026.3/basic_request.animated.gif)

您需要编写并运行 HTTP 请求的两个主要用例：

* 当您开发 RESTful 网络服务时，并希望确保其按预期工作、符合规范要求并正确响应。

* 当您开发处理 RESTful 网络服务的应用程序时。 在这种情况下，在您开始开发之前，研究对服务的访问和所需的输入数据是很有帮助的。 在开发过程中，您也可以从应用程序外部调用此 web 服务。 这可能有助于在您的应用程序产生意外输出而在代码中未检测到逻辑错误，并且您怀疑瓶颈在于与 web service 交互时，定位错误。

HTTP 请求存储在  `.http`  和  `.rest`  文件中，并用 ![HTTP 文件图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/restClient.com.intellij.ws.rest.client.icons.expui.httpRequestsFiletype.svg) 图标标记。

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

* [代码高亮](configuring-colors-and-fonts.html)

* [代码补全](auto-completing-code.html)：支持对通过 [OpenAPI](openapi.html) 定义的主机、方法类型、头字段和端点进行补全

* 请求、请求部分和响应处理脚本的 [Code folding](working-with-source-code.html#code_folding)

* [重新格式化](reformat-and-rearrange-code.html) 请求以符合您的 HTTP 请求 代码样式。

* [请求头字段和文档标签](viewing-reference-information.html)的内联文档

* 查看 HTTP 请求文件的 [结构](#structure-tool-window)

* 请求消息体内的 [Web 语言中的语言注入](using-language-injections.html)

* [移动重构](move-refactorings.html)

* [实时模板](using-live-templates.html)

如有必要，在开始之前，请在 [HTTP 代理](settings-http-proxy.html) 页面的   设置   对话框中配置代理设置（ `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS))）。

## 创建 HTTP 请求文件

您可以在临时文件或   HTTP 请求   类型的物理文件中处理 HTTP 请求。 每个文件可以包含多个请求，并且您可以根据需要创建任意数量的文件。

[草稿文件](scratches.html)可用于在开发期间测试 HTTP 请求。 草稿文件不存储在项目中，因此 IntelliJ IDEA 可以修改它们并添加有关请求的额外信息。 当从草稿文件执行 HTTP 请求时，响应输出文件的链接会添加到请求下方以及 [请求历史](#requests_history)文件顶部。

Procedure: 创建 HTTP 请求 草稿文件

* 按 `Ctrl+Alt+Shift+Insert` (Windows), `⌘ ⇧ N` (macOS), `⌃ ⇧ N` (IntelliJ IDEA Classic (macOS)), `⌃ ⇧ N` (macOS System Shortcuts), `Ctrl+Alt+Shift+Insert` (XWin), `Ctrl+Alt+Shift+Insert` (GNOME), `Ctrl+Alt+Shift+Insert` (KDE), `Ctrl+Alt+Shift+Insert` (Emacs), `Ctrl+Alt+Shift+Insert` (Sublime Text), `⌘ ⇧ N` (Sublime Text (macOS)), `Ctrl+Alt+Shift+Insert` (Visual Studio), `⌘ ⇧ N` (Visual Studio (macOS)), `Ctrl+Alt+Shift+Insert` (NetBeans), `Ctrl+Alt+Shift+Insert` (Eclipse), `⌘ ⇧ N` (Eclipse (macOS))并选择   HTTP 请求  。

物理文件 可以用于记录、测试和验证 HTTP 请求。 项目内存储了物理文件，IntelliJ IDEA 不会修改它们。 从物理文件执行 HTTP 请求时，该文件不会被修改。 已执行请求的信息及其响应输出文件的链接被添加到 [请求历史](#requests_history)文件的顶部。

Procedure: 创建一个物理 HTTP 请求文件

* 在   文件  菜单中，指向   新建  ，然后点击   HTTP 请求  。

Procedure: 移动 HTTP 请求

您可以使用 [Move](null) 重构 `F6` (Windows), `F6` (macOS), `F6` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ I` (macOS System Shortcuts), `F6` (XWin), `F6` (GNOME), `F6` (KDE), `F6` (Emacs), `F6` (Sublime Text), `F6` (Sublime Text (macOS)), `Ctrl+R, O` (Visual Studio), `⌘ R, O` (Visual Studio (macOS)), `Ctrl+M` (NetBeans), `Alt+Shift+V` (Eclipse), `⌘ ⌥ V` (Eclipse (macOS)) 将 HTTP 请求从临时文件移至物理文件，也可以在不同的物理文件之间移动。

1. 在编辑器中，将文本光标置于要移动的请求处，然后执行以下操作之一：

* 从主菜单或上下文菜单中选择 `重构 | 移动` 。

* 按 `Ctrl+Shift+A` (Windows), `⌘ ⇧ A` (macOS), `⌘ ⇧ A` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ P` (macOS System Shortcuts), `Ctrl+Shift+A` (XWin), `Ctrl+Shift+A` (GNOME), `Ctrl+Shift+A` (KDE), `Escape, X` (Emacs), `Ctrl+Shift+P` (Sublime Text), `⌘ ⇧ P` (Sublime Text (macOS)), `Ctrl+Shift+A` (Visual Studio), `⌘ ⇧ A` (Visual Studio (macOS)), `Ctrl+I` (NetBeans), `Ctrl+Shift+A` (Eclipse), `⌘ 3` (Eclipse (macOS))，开始输入 `重构` ，然后从列表中选择该操作。 在打开的 重构 弹出窗口中，选择 移动 。

* 按下 `Alt+Enter` (Windows), `⌥ ⏎` (macOS), `⌥ ⏎` (IntelliJ IDEA Classic (macOS)), `⌥ ⏎` (macOS System Shortcuts), `Alt+Enter` (XWin), `Alt+Enter` (GNOME), `Alt+Enter` (KDE), `Alt+Enter` (Emacs), `Alt+Enter` (Sublime Text), `⌥ ⏎` (Sublime Text (macOS)), `Alt+Enter` (Visual Studio), `⌥ ⏎` (Visual Studio (macOS)), `Alt+Enter` (NetBeans), `Ctrl+1` (Eclipse), `⌘ 1` (Eclipse (macOS))，然后选择 移动 HTTP 请求 [意图操作](intention-actions.html)。

* 按下 `F6` (Windows), `F6` (macOS), `F6` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ I` (macOS System Shortcuts), `F6` (XWin), `F6` (GNOME), `F6` (KDE), `F6` (Emacs), `F6` (Sublime Text), `F6` (Sublime Text (macOS)), `Ctrl+R, O` (Visual Studio), `⌘ R, O` (Visual Studio (macOS)), `Ctrl+M` (NetBeans), `Alt+Shift+V` (Eclipse), `⌘ ⌥ V` (Eclipse (macOS))。

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

1.

在   路径   字段中，从列表中选择一个现有的  `.http`  文件，或点击 ![浏览按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.general.ellipsis.svg) 以找到该文件。

您也可以手动输入文件的完整路径。 如果您指定一个不存在的文件名称，将会自动创建一个具有提供的名称的新文件。

2.  在   请求  列表中，选中您要移动的请求旁边的复选框。

## 编写 HTTP 请求

IntelliJ IDEA 使用  Editor 中的 HTTP 请求  格式，这提供了一种创建、执行和存储 HTTP 请求信息的简单方法。 您可以直接在 [创建的 HTTP 请求 文件](#creating-http-request-files)中输入它们，使用以下通用语法：

```GENERIC
###
Method Request-URI HTTP-Version
Header-field: Header-value

Request-Body

```

在  `###` 分隔符之后，您可以输入任何以  `#` 或  `//` 开头的注释。

> **Tip:**
> 要快速在运行/调试配置、   随处搜索  和   运行任何内容  中找到您的请求，您可以 [给它命名](exploring-http-syntax.html#http_request_names)。

> **Note:**
> 您可以使用  `编辑器 | 配色方案 | HTTP 请求`  设置来 [自定义颜色和样式](configuring-colors-and-fonts.html#customize-color-scheme)，用于高亮显示请求语法（名称、注释、参数、标头等）。

为了加快撰写 HTTP 请求，您可以：

* 点击 `工具 | HTTP 客户端 | 在 HTTP 客户端中创建请求` 。 如果在编辑器中打开了请求文件，这将会向打开的文件添加请求模板。 否则，这将创建一个新的 `.http` 临时文件。

* 在请求的编辑器面板顶部，点击 ![添加请求按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)。 在弹出菜单中，选择要添加的请求类型。 ![添加 HTTP 请求](https://resources.jetbrains.com.cn/help/img/idea/2026.3/add-http-request.png)

或者，使用 [实时模板](using-live-templates.html)。 在编辑器中，您可以按 `Ctrl+J` (Windows), `⌘ J` (macOS), `⌘ J` (IntelliJ IDEA Classic (macOS)), `⌘ J` (macOS System Shortcuts), `Ctrl+J` (XWin), `Ctrl+J` (GNOME), `Ctrl+J` (KDE), `Ctrl+J` (Emacs), `Ctrl+J` (Sublime Text), `Ctrl+J` (Sublime Text (macOS)), `Ctrl+K, X` (Visual Studio), `⌘ E, L` (Visual Studio (macOS)), `Ctrl+J` (NetBeans), `Ctrl+Alt+Shift+J` (Eclipse), `Ctrl+J` (Eclipse (macOS)) 查看可用模板的列表。 例如，   gtr   展开为一个简单的 GET 请求；   mptr   展开为一个  `multipart/form-data`  POST 请求。

![展开发布模板](https://resources.jetbrains.com.cn/help/img/idea/2026.3/expand_post_template.animated.gif)

> **Tip:**
> 如果您使用  `application/x-www-form-urlencoded`  内容类型，您应该使用  `%`  来转义  `%` 、  `&` 、  `=`  和  `+`  请求体中键和值的特殊字符。
>
>
>
> 例如，为了让服务器接收  `field1=value%2Bvalue&field2=value%26value` （其中  `%2B`  对应于  `+` ，  `%26`  对应于  `&` ），请求体应如下所示：
>
>
>
>
> ```
> POST https://ijhttp-examples.jetbrains.com/post
> Content-Type: application/x-www-form-urlencoded
>
> field1=value%+value&field2=value%&value
>
> ```
>
>
>
> 或者，您可以直接写入编码值，例如  `value1%ADvalue2`  对于  `value1 value2`  或  `value1%2Bvalue2`  对于  `value1+value2` 。

Procedure: 创建自定义 HTTP 方法

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

1. 在  `.http`  文件中，以大写字母键入一个自定义方法。

2. 当该方法被标记为未知时，请按 `Alt+Enter` (Windows), `⌥ ⏎` (macOS), `⌥ ⏎` (IntelliJ IDEA Classic (macOS)), `⌥ ⏎` (macOS System Shortcuts), `Alt+Enter` (XWin), `Alt+Enter` (GNOME), `Alt+Enter` (KDE), `Alt+Enter` (Emacs), `Alt+Enter` (Sublime Text), `⌥ ⏎` (Sublime Text (macOS)), `Alt+Enter` (Visual Studio), `⌥ ⏎` (Visual Studio (macOS)), `Alt+Enter` (NetBeans), `Ctrl+1` (Eclipse), `⌘ 1` (Eclipse (macOS)) (   显示上下文操作​​  ) 并选择   添加自定义 HTTP 方法  。

![添加自定义 HTTP 方法](https://resources.jetbrains.com.cn/help/img/idea/2026.3/http_client_custom_methods.png)

IntelliJ IDEA 将现在识别它为有效的 HTTP 方法。 您可以在 IDE 设置中( `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)))，  `工具 | HTTP 客户端 | 自定义 HTTP 方法` 找到所有自定义 HTTP 方法（并添加新方法）。

### HTTP/2

从版本 2024.1 开始，IntelliJ IDEA 在 HTTP 请求中提供对 HTTP/2 的支持。 您可以在 URL 部分后指定 HTTP 版本，例如：

```HTTP_REQUEST_FULL
GET https://example.org HTTP/2

```

如果未指定版本，HTTP 客户端 会尝试对安全连接使用 HTTP/2（如果 HTTP/2 协商失败，将退回到 HTTP/1.1），对非安全连接使用 HTTP/1.1。

Procedure: 选择 HTTP 版本

1. 在请求 URL 后面输入一个空格，然后按 `Ctrl+Space` (Windows), `⌃ Space` (macOS), `⌃ Space` (IntelliJ IDEA Classic (macOS)), `⌃ Space` (macOS System Shortcuts), `Ctrl+Space` (XWin), `Ctrl+Space` (GNOME), `Ctrl+Space` (KDE), `Alt+/` (Emacs), `Ctrl+Space` (Sublime Text), `⌃ Space` (Sublime Text (macOS)), `Ctrl+Space` (Visual Studio), `⌃ Space` (Visual Studio (macOS)), `Ctrl+Space` (NetBeans), `Ctrl+Space` (Eclipse), `⌃ Space` (Eclipse (macOS)) 或开始输入  `HTTP` 。

2. 从补全列表中选择一个建议值：

* `HTTP/1.1` 强制使用 HTTP/1.1。

* `HTTP/2` 启用 HTTP/2 的使用。

* `HTTP/2（预先知识）` 使用 HTTP/2 发送而不升级到 HTTP/1.1。 如果您知道服务器能够处理 HTTP/2 连接，请使用它。

![启用 HTTP/2](https://resources.jetbrains.com.cn/help/img/idea/2026.3/http_client_enable_http_version_two.png)

要了解 HTTP 客户端 功能，您可以探索   HTTP 请求集合  ，它是一个精选的组合请求。

Procedure: 从 HTTP  请求集合中打开请求

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

2. 在弹出菜单中，选择您希望打开的 HTTP 请求 集合：

![打开 HTTP 请求集合弹出窗口](https://resources.jetbrains.com.cn/help/img/idea/2026.3/open-http-requests-collection.png)

> **Note:**
> 参考 [探索 HTTP 请求语法](exploring-http-syntax.html) 了解更多语法信息。

### 转换 cURL 请求

如果您正在处理 [cURL](https://curl.haxx.se) 请求，您可以在 cURL 请求和  编辑器中的 HTTP 请求  格式之间进行转换。

Procedure: 将 cURL 转换为 HTTP 请求

* 将 cURL 请求粘贴到 HTTP 请求文件中。 IntelliJ IDEA 将其转换为 HTTP 请求格式，并将原始 cURL 请求注释掉以供以后参考。

![粘贴时将 cURL 请求转换为 HTTP 请求](https://resources.jetbrains.com.cn/help/img/idea/2026.3/aqua_http_client_convert_curl_on_paste.png)

* 或者，点击 HTTP 请求编辑器面板顶部的 ![将 cURL 转换为 HTTP 请求](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.import.svg)，然后选择   将 cURL 转换为 HTTP 请求  。

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

![将 cURL 转换为 HTTP 请求的对话框](https://resources.jetbrains.com.cn/help/img/idea/2026.3/aqua_convert_curl_request_dialog.png)

请考虑以下示例 cURL 请求：

```SHELL
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'

```

IntelliJ IDEA 将把它转换为：

```HTTP_REQUEST_FULL
# 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](https://curl.haxx.se/docs/manpage.html#-X)  |  请求要使用的方法。  |
|  [-H, --header](https://curl.haxx.se/docs/manpage.html#-H)  |  请求中包含的请求头。  |
|     [-u, --user](https://curl.haxx.se/docs/manpage.html#-u)       [--basic](https://curl.haxx.se/docs/manpage.html#--basic)       [--digest](https://curl.haxx.se/docs/manpage.html#--digest)     |  用户提交请求时需要提供的凭据和使用的授权方法。  |
|     [-d, --data, --data-ascii](https://curl.haxx.se/docs/manpage.html#-d)       [--data-binary](https://curl.haxx.se/docs/manpage.html#--data-binary)       [--data-raw](https://curl.haxx.se/docs/manpage.html#--data-raw)       [--data-urlencode](https://curl.haxx.se/docs/manpage.html#--data-urlencode)     |  要在 POST 请求中发送的数据。  |
|  [-F, --form](https://curl.haxx.se/docs/manpage.html#-F)  |  发送在 POST 请求中的  multipart/form-data  消息。  |
|  [--url](https://curl.haxx.se/docs/manpage.html#--url)  |  要获取的 URL（主要在配置文件中指定 URL 时使用）。  |
|  [-i, --include](https://curl.haxx.se/docs/manpage.html#-i)  |  定义是否将 HTTP 响应头包含在输出中。  |
|  [-v, --verbose](https://curl.haxx.se/docs/manpage.html#-v)  |  启用详细操作模式。  |
|  [-L, --location](https://curl.haxx.se/docs/manpage.html#-L)  |  允许在请求的页面已移至不同位置时重新发送请求。  |

Procedure: 将 HTTP 请求转换为 cURL

1. 将文本光标放置在您想要转换为 cURL 格式的 HTTP 请求处。

2. 按 `Alt+Enter` (Windows), `⌥ ⏎` (macOS), `⌥ ⏎` (IntelliJ IDEA Classic (macOS)), `⌥ ⏎` (macOS System Shortcuts), `Alt+Enter` (XWin), `Alt+Enter` (GNOME), `Alt+Enter` (KDE), `Alt+Enter` (Emacs), `Alt+Enter` (Sublime Text), `⌥ ⏎` (Sublime Text (macOS)), `Alt+Enter` (Visual Studio), `⌥ ⏎` (Visual Studio (macOS)), `Alt+Enter` (NetBeans), `Ctrl+1` (Eclipse), `⌘ 1` (Eclipse (macOS))并选择   转换为 cURL 并复制到剪贴板  。

或者，您可以点击 HTTP 请求编辑面板顶部的   转换   快捷链接并选择   将光标下的 HTTP 请求转换为 cURL 并复制  。

这将根据 HTTP 请求生成一个 cURL 请求，并将其复制到剪贴板。

### 导入 Postman 集合和环境

Postman 集合是一种将相关 HTTP 请求组合在一起的方法。 在 Postman 中，您可以导出集合以及 JSON 格式的变量。 通过 HTTP 客户端，您可以将这些文件导入 IntelliJ IDEA，以将它们转换为各自的  `.http`  和环境文件。

Procedure: 导入 Postman 集合到 HTTP 客户端

1. [从 Postman 导出集合](https://learning.postman.com/docs/getting-started/importing-and-exporting/exporting-data/). 您还可以导出环境文件，以便在 IntelliJ IDEA 中使用它们。

2. 将文件以以下其中一种方式导入 IntelliJ IDEA：

* 如果导出的文件在您的项目中，右键点击它并选择 将集合转换为 .http 文件 。

* 打开任何 `.http` 文件，点击工具栏中的 ![导入 HTTP 请求](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.import.svg)，然后选择 Postman 集合 。

* 请按 `Ctrl+Shift+A` (Windows), `⌘ ⇧ A` (macOS), `⌘ ⇧ A` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ P` (macOS System Shortcuts), `Ctrl+Shift+A` (XWin), `Ctrl+Shift+A` (GNOME), `Ctrl+Shift+A` (KDE), `Escape, X` (Emacs), `Ctrl+Shift+P` (Sublime Text), `⌘ ⇧ P` (Sublime Text (macOS)), `Ctrl+Shift+A` (Visual Studio), `⌘ ⇧ A` (Visual Studio (macOS)), `Ctrl+I` (NetBeans), `Ctrl+Shift+A` (Eclipse), `⌘ 3` (Eclipse (macOS))，开始输入 `Import from Postman Collection File` ，并选择相应的操作。

3. 如果您还想导入一个环境文件，请选择   附加环境  并指定该文件。 它将被转换为 HTTP 客户端 环境格式，并且该环境将为指定的  `.http`  文件选择。

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

![从 Postman 窗口导入](https://resources.jetbrains.com.cn/help/img/idea/2026.3/http_client_import_from_postman.png)

> **Note:**
> 您还可以通过从文件管理器将集合文件拖到 IntelliJ IDEA 编辑器区域来快速导入 Postman 集合。 IntelliJ IDEA 不仅会在编辑器中打开文件，还会将其转换为带有相应请求的  `.http`  文件。

### 使用上下文操作生成请求

如果您的代码字符串字面值或 JSON、YAML、TOML 和 Properties 文件中有以  `http`  或  `https`  开头的 URL，您可以快速生成 HTTP 请求。

Procedure:

1. 点击 URL 并按 `Alt+Enter` (Windows), `⌥ ⏎` (macOS), `⌥ ⏎` (IntelliJ IDEA Classic (macOS)), `⌥ ⏎` (macOS System Shortcuts), `Alt+Enter` (XWin), `Alt+Enter` (GNOME), `Alt+Enter` (KDE), `Alt+Enter` (Emacs), `Alt+Enter` (Sublime Text), `⌥ ⏎` (Sublime Text (macOS)), `Alt+Enter` (Visual Studio), `⌥ ⏎` (Visual Studio (macOS)), `Alt+Enter` (NetBeans), `Ctrl+1` (Eclipse), `⌘ 1` (Eclipse (macOS))。

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

![在 HTTP 客户端中生成请求](https://resources.jetbrains.com.cn/help/img/idea/2026.3/aqua_http_generate_from_context.png)

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

### 从 OpenAPI 规范创建请求

处理 [OpenAPI Specification](openapi.html) 文件时，您可以创建到指定端点的 HTTP 请求。

Procedure: 创建一个 HTTP 请求到一个端点

* 在 OpenAPI 规范文件中，点击编辑器装订区域中端点定义旁边的 ![在 HTTP 客户端中打开按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/swagger.icons.endpointGutter.svg)。

* 或者，打开  `视图 | 工具窗口 | 端点` ，右键点击端点，然后选择   在 HTTP 客户端 中生成请求  。

IntelliJ IDEA 将创建一个新的 HTTP 请求，并将其保存在  `generated-requests.http`  [临时文件](#creating-http-request-files) 中。

如果您想快速向某个端点发送请求且不想保存它，您可以使用   HTTP 客户端   选项卡（位于   端点   工具窗口中）。

根据可用的 OpenAPI 规范，IntelliJ IDEA 为请求 URL 以及请求体（JSON 格式）提供补全。 这不仅适用于本地规范，也适用于远程规范（ [在 IDE 设置中添加它们](openapi.html#remote-spec)以启用补全）。

![请求体补全](https://resources.jetbrains.com.cn/help/img/idea/2026.3/openapi_body_completion.animated.gif)

> **Tip:**
> 同样，您可以通过点击编辑器中相应的行号标志，从端点源代码中创建 HTTP 请求，例如在 JAX-RS 和 [Micronaut](micronaut.html#controller) 端点中的 ![](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.icons.web.newui.requestMapping.svg) 或在 [Spring](spring-support-tutorial.html#create-controller) 控制器中的 ![](https://resources.jetbrains.com.cn/help/img/idea/2026.3/spring.icons.expui.gutter.requestMapping%4014x14.svg)。

Procedure: 重命名端点及其用法

使用 [重命名重构](rename-refactorings.html) 同步重命名已定义的端点及其在 HTTP 请求中的用法。

1. 执行以下任一操作：

* 在 OpenAPI 规范文件中，将文本光标放在您想要重命名的端点定义处。

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

2. 在主菜单或上下文菜单中选择  `重构 | 重命名` ，或按 `Shift+F6` (Windows), `⇧ F6` (macOS), `⇧ F6` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ R` (macOS System Shortcuts), `Shift+F6` (XWin), `Shift+F6` (GNOME), `Shift+F6` (KDE), `Shift+F6` (Emacs), `Shift+F6` (Sublime Text), `⇧ F6` (Sublime Text (macOS)), `Ctrl+R, R` (Visual Studio), `⌘ R, R` (Visual Studio (macOS)), `Ctrl+R` (NetBeans), `Alt+Shift+R` (Eclipse), `⇧ F6` (Eclipse (macOS))。

3. 在打开的   重命名   对话框中，指定新的端点名称。

4. 预览并应用更改。

IntelliJ IDEA 将重命名该端点及其用法。

### 使用 响应处理程序 和 预请求处理脚本

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

通过预请求脚本，您可以设置 [HTTP 请求中使用的变量](http-client-variables.html#per_request_variables)。

Procedure: 插入响应处理程序脚本

您可以将响应处理程序脚本直接插入到请求中或通过引用外部文件进行插入。

* 要就地插入脚本，请在其前添加  `>`  并将其括在  `{% %}`  中：

```HTTP_REQUEST_FULL
GET host/api/test

> {%
// Response Handler Script
...
%}

```

* 要从外部文件插入脚本，请在其前添加  `>` ：

```HTTP_REQUEST_FULL
GET host/api/test

> scripts/my-script.js

```

如果响应处理程序脚本有任何输出（来自 [client.log](http-client-reference.html#client-methods)的错误或输出），会在您运行请求时显示在   响应处理程序  选项卡的   服务  工具窗口中。

Procedure: 插入预请求脚本

您可以直接在请求中插入预请求脚本或引用外部文件。

* 要就地插入脚本，请在其前添加  `<`  并将其括在  `{% %}`  中：

```HTTP_REQUEST_FULL
< {%
    request.variables.set("petName", "Bella")
%}
POST https://example.org/pets/{{petName}}

```

* 要从外部文件插入脚本，请在其前添加  `<` ：

```HTTP_REQUEST_FULL
< scripts/my-script.js

POST https://example.org/pets/{{petName}}

```

如果预请求脚本有任何输出（错误或 [client.log](http-client-reference.html#client-methods) 的输出），当您运行请求时，它会显示在   预请求处理程序   选项卡的   服务   工具窗口中。

Procedure: 导入 JavaScript 代码

有时，您可能需要使用外部文件中的特定功能，例如变量或函数。 为此，在前置请求和响应处理器脚本中，您可以使用常规的 ES6 import 功能来访问本地 JavaScript 文件中定义的变量和函数。

* 从 JavaScript 文件中导出所需的值。 HTTP 客户端支持以下格式的  `导出`  语句：

```JAVASCRIPT
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 客户端支持以下格式的  `import`  语句：

```JAVASCRIPT
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

```

> **Note:**
> 如果您希望从外部文件运行一些测试而不需要从中导入任何内容，可以在您的响应处理脚本中使用 [side effect import](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import#import_a_module_for_its_side_effects_only)，例如  `import 'test-scripts/mytests'` 。 这在您有常用测试并希望在多个请求中重用它们时非常有用，同时也保持编写（或导入）某些请求的单独测试的能力。

* 请将  `import` 语句放在当前  `.http` 文件顶部的公共块声明  `={% ... %}` 中，以使 JavaScript 模块可用于该文件中的所有预请求脚本和响应处理程序。

示例  `logger.js` ：

```JAVASCRIPT
export const logMessage = () => {
    console.log("Request executed");
};

```

`.http`  文件示例：

```JAVASCRIPT
                ={%
import { logMessage } from "logger"
%}

###
< {%
    logMessage();
%}

GET https://examples.http-client.intellij.net/get

> {%
    logMessage();
%}
            
```

响应处理程序脚本和预检请求脚本是用 JavaScript ECMAScript 2023 编写的，代码辅助和文档由捆绑的  `HTTP Pre-Request and Response Handler`  库处理。 对于就地脚本，这一功能会自动启用。 对于外部脚本，您需要手动启用。

Procedure: 为响应处理程序和预请求脚本启用 JavaScript 编码帮助

1. 按 `Ctrl+Shift+A` (Windows), `⌘ ⇧ A` (macOS), `⌘ ⇧ A` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ P` (macOS System Shortcuts), `Ctrl+Shift+A` (XWin), `Ctrl+Shift+A` (GNOME), `Ctrl+Shift+A` (KDE), `Escape, X` (Emacs), `Ctrl+Shift+P` (Sublime Text), `⌘ ⇧ P` (Sublime Text (macOS)), `Ctrl+Shift+A` (Visual Studio), `⌘ ⇧ A` (Visual Studio (macOS)), `Ctrl+I` (NetBeans), `Ctrl+Shift+A` (Eclipse), `⌘ 3` (Eclipse (macOS))（   查找操作  ）。

2. 键入   使用 JavaScript 库  ，点击相应的操作，在打开的上下文菜单中选择   HTTP Pre-Request and Response Handler  。

`HTTP Response Handler`  库公开了两个对象可用于编写响应处理程序脚本：

* `client` 对象存储会话元数据，可以在脚本中修改。 `client` 状态会被保留，直到您关闭 IntelliJ IDEA。 每个保存在 `client.global` 中的 `variable_name` 变量对于后续的 HTTP 请求都可作为 `{{variable_name}}` 访问。

* `response` 保存有关接收响应的信息：其内容类型、状态、响应主体等。

要在编辑器中打开  HTTP Response Handler  库，请将插入符置于库对象处，然后按下 `Ctrl+B` (Windows), `⌘ B` (macOS), `⌘ B` (IntelliJ IDEA Classic (macOS)), `⌘ B` (macOS System Shortcuts), `Ctrl+B` (XWin), `Ctrl+B` (GNOME), `Ctrl+B` (KDE), `Ctrl+Alt+G` (Emacs), `F12` (Sublime Text), `F12` (Sublime Text (macOS)), `F12` (Visual Studio), `F12` (Visual Studio (macOS)), `Ctrl+B` (NetBeans), `F3` (Eclipse), `F3` (Eclipse (macOS))。

响应处理程序脚本可以包含测试，这让您可以将 HTTP 客户端 作为测试框架使用。 创建测试时，调用  `client.test(testName, function)`  方法。 在测试中，您可以通过调用  `client.assert(condition, message)`  方法来断言一个条件，例如：

```JAVASCRIPT
GET https://httpbin.org/status/200

> {%
    client.test("Request executed successfully", function() {
        client.assert(response.status === 200, "Response status is not 200");
    });
%}

```

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

如果您的  `.http`  文件中有多个请求，   结构   工具窗口可以帮助您快速预览文件并进行导航。 工具窗口还显示请求部分，例如 标头、请求正文、预请求处理脚本 和 响应处理程序脚本。

1. 打开   结构   工具窗口：  `查看 | 工具窗口 | 结构` 。

或者按 `Alt+7` (Windows), `⌘ 7` (macOS), `⌘ 7` (IntelliJ IDEA Classic (macOS)), `⌘ 7` (macOS System Shortcuts), `Alt+7` (XWin), `Alt+7` (GNOME), `Alt+7` (KDE), `Alt+7` (Emacs), `Alt+7` (Sublime Text), `⌘ 7` (Sublime Text (macOS)), `Ctrl+Alt+F` (Visual Studio), `⌃ ⌥ F` (Visual Studio (macOS)), `Ctrl+7` (NetBeans), `Alt+7` (Eclipse), `⌘ 7` (Eclipse (macOS))。

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

![HTTP 客户端 结构工具窗口](https://resources.jetbrains.com.cn/help/img/idea/2026.3/http_client_structure_tool_window.png)

您还可以通过右键点击它并选择 ![运行按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.run.run.svg) 从那里发送请求。

## 执行 HTTP 请求

Procedure: 执行单个请求

1. 如果您打算测试自己的 Web 服务，请确保其已部署并运行。

2. 如果您定义了 [环境](http-client-variables.html)，请在请求编辑面板顶部的   使用以下方式运行  列表中选择一个环境。

3. 在边距中，点击请求旁的 ![运行按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.run.run.svg) 。

Procedure: 顺序执行多个请求

您可以一次性运行  `.http`  文件中的所有请求。 这在处理复杂场景时非常有用，例如从服务器请求特定数据，保存为 [client.global](http-response-handling-examples.html#script-var-example)变量，然后发送包含该数据的后续请求。

1. 打开文件  `.http` 。

2. 在编辑器面板的顶部，点击 ![](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app-client.expui.actions.runAll.svg) (   运行文件中的所有请求  )。

当请求执行时，IntelliJ IDEA 会自动为其创建一个专用的临时 [HTTP 请求 运行/调试配置](#http-request-run-debug-configurations)。 如果需要，您可以 [将其保存为永久运行/调试配置](#save-temporary-http-request-run-debug-configuration)。

Procedure: 在浏览器中打开请求

您可以在 [Web 浏览器和预览](settings-tools-web-browsers.html) 页面的   设置   对话框中指定的浏览器中打开 HTTP 请求（ `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS))）。

* 按下 `Alt+Enter` (Windows), `⌥ ⏎` (macOS), `⌥ ⏎` (IntelliJ IDEA Classic (macOS)), `⌥ ⏎` (macOS System Shortcuts), `Alt+Enter` (XWin), `Alt+Enter` (GNOME), `Alt+Enter` (KDE), `Alt+Enter` (Emacs), `Alt+Enter` (Sublime Text), `⌥ ⏎` (Sublime Text (macOS)), `Alt+Enter` (Visual Studio), `⌥ ⏎` (Visual Studio (macOS)), `Alt+Enter` (NetBeans), `Ctrl+1` (Eclipse), `⌘ 1` (Eclipse (macOS))，然后选择   在网页浏览器中打开   [意图操作](intention-actions.html)。

### 处理 HTTP 请求运行/调试配置

当您 [从编辑器执行 HTTP 请求](#execute_request_procedure)时，IntelliJ IDEA 会自动创建一个包含该请求参数的临时运行/调试配置。 临时运行/调试配置与永久运行/调试配置的工作方式相同。 您可以使用 [Run/Debug Configuration](run-debug-configurations-dialog.html)对话框更改其设置，并可选择将其保存为永久配置。

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

1. 执行以下任一操作：

* 在编辑器中，右键点击一个请求，然后在上下文菜单中选择 修改运行配置... 。

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

2. 根据需要更改配置形参：

* 在 环境 列表中，选择一个 [环境](http-client-variables.html)，它将定义请求中使用的一组环境变量。

* 在 文件 字段中，提供 [HTTP 请求文件](#creating-http-request-files)的路径。 您可以手动键入路径，并在键入时使用路径补全 `Ctrl+Space` (Windows), `⌃ Space` (macOS), `⌃ Space` (IntelliJ IDEA Classic (macOS)), `⌃ Space` (macOS System Shortcuts), `Ctrl+Space` (XWin), `Ctrl+Space` (GNOME), `Ctrl+Space` (KDE), `Alt+/` (Emacs), `Ctrl+Space` (Sublime Text), `⌃ Space` (Sublime Text (macOS)), `Ctrl+Space` (Visual Studio), `⌃ Space` (Visual Studio (macOS)), `Ctrl+Space` (NetBeans), `Ctrl+Space` (Eclipse), `⌃ Space` (Eclipse (macOS))，或点击 ![从磁盘打开](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.open.svg) 并在打开的对话框中选择所需文件夹。

* 如果您的请求文件包含多个请求，请在 请求 列表中选择要执行的请求名称。

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

执行以下任一操作：

* 在   运行/调试配置  选择器中，选择  `保存 <配置名称>` 。

* 在   运行/调试配置  对话框中，选择配置并点击 ![保存按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.save.svg)。

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

执行以下任一操作：

* 在   运行/调试配置  选择器中，选择所需的运行配置。 然后点击 ![运行按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.run.run.svg)主工具栏或按 `Shift+F10` (Windows), `⌃ R` (macOS), `⇧ F10` (IntelliJ IDEA Classic (macOS)), `⌥ ⇧ R` (macOS System Shortcuts), `Shift+F10` (XWin), `Shift+F10` (GNOME), `Shift+F10` (KDE), `Shift+F10` (Emacs), `Shift+F10` (Sublime Text), `Shift+F10` (Sublime Text (macOS)), `Ctrl+F5` (Visual Studio), `⌃ F5` (Visual Studio (macOS)), `F6` (NetBeans), `Alt+Shift+X` (Eclipse), `⌘ ⇧ F11` (Eclipse (macOS))。

* 按 `Alt+Shift+F10` (Windows), `⌃ ⌥ R` (macOS), `⌥ ⇧ F10` (IntelliJ IDEA Classic (macOS)), `⌃ ⌥ R` (macOS System Shortcuts), `Alt+Shift+F10` (XWin), `Alt+Shift+F10` (GNOME), `Alt+Shift+F10` (KDE), `Alt+Shift+F10` (Emacs), `Alt+Shift+F10` (Sublime Text), `⌃ ⌥ R` (Sublime Text (macOS)), `Ctrl+Alt+Shift+R` (Visual Studio), `⌘ ⌥ ⇧ R` (Visual Studio (macOS)), `Alt+Shift+F10` (NetBeans), `Alt+Shift+F10` (Eclipse), `⌃ ⌥ R` (Eclipse (macOS))，从列表中选择所需的运行配置，然后按 `Enter` (Windows), `⏎` (macOS), `⏎` (IntelliJ IDEA Classic (macOS)), `⏎` (macOS System Shortcuts), `Enter` (XWin), `Enter` (GNOME), `Enter` (KDE), `Enter` (Emacs), `Enter` (Sublime Text), `⏎` (Sublime Text (macOS)), `Enter` (Visual Studio), `⏎` (Visual Studio (macOS)), `Enter` (NetBeans), `Enter` (Eclipse), `⏎` (Eclipse (macOS))。

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

IntelliJ IDEA 允许您从其他  `.http`  文件中导入 HTTP 请求。 您可以：

* [从指定文件运行所有 HTTP 请求](#run-all-requests-from-another-http-file)

* [从导入的文件运行特定的 HTTP 请求](#run-specific-requests-from-another-http-file)

点击 [示例](#open-requests-collection)并选择   带有 Include 的请求  以获取您 IDE 中此功能的语法示例。

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

1. 在您的  `.http`  文件中，输入  `run` ，然后输入您想要包含的另一个  `.http`  的名称。 如果文件在同一目录中，请输入其名称。 否则，指定其路径。 例如：

```HTTP_REQUEST_FULL
run ./myFolder/get-requests.http

```

2. 点击 ![运行按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.run.run.svg)（位于  `run`  旁边），以发送此文件中的所有请求。

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

1. 在您的  `.http`  文件顶部，输入  `import` ，然后输入另一个包含必要请求的  `.http`  的名称。

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

您可以按 `Ctrl+Space` (Windows), `⌃ Space` (macOS), `⌃ Space` (IntelliJ IDEA Classic (macOS)), `⌃ Space` (macOS System Shortcuts), `Ctrl+Space` (XWin), `Ctrl+Space` (GNOME), `Ctrl+Space` (KDE), `Alt+/` (Emacs), `Ctrl+Space` (Sublime Text), `⌃ Space` (Sublime Text (macOS)), `Ctrl+Space` (Visual Studio), `⌃ Space` (Visual Studio (macOS)), `Ctrl+Space` (NetBeans), `Ctrl+Space` (Eclipse), `⌃ Space` (Eclipse (macOS)) 查看导入文件中所有可用的请求。

![从另一个 .http 文件运行特定请求](https://resources.jetbrains.com.cn/help/img/idea/2026.3/http_client_import_other_http_requests.png)

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

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

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

2. 在请求或文件名之后，以  `(@variable=value)`  格式输入变量。 要指定多个变量，请用逗号分隔。 例如：

```HTTP_REQUEST_FULL
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 请求时，IntelliJ IDEA 会自动将响应保存到  `.idea/httpRequests/`  目录下的一个单独文件中。 您可以查看最近存储的 50 个响应，并通过 [请求历史](#requests_history) 导航到相应的文件。 如果请求是从一个 scratch 文件执行的，响应输出的链接也会添加在原始请求下面：

![HTTP 响应](https://resources.jetbrains.com.cn/help/img/idea/2026.3/http_response_in_scratch.png)

Procedure: 查看收到的响应

1. 切换到 [服務 工具窗口](services-tool-window.html)，该窗口会在接收到响应后自动打开。

2. 默认情况下，服务器响应会按照请求头中 [content-type](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17) 字段指定的格式显示。 若要将响应转换为其他格式，请点击 ![响应视图设置](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app-client.expui.general.show.svg)并选择   文本  、   JSON  、   XML  或   HTML  。

![在 服務 工具窗口中的 HTTP response](https://resources.jetbrains.com.cn/help/img/idea/2026.3/idea_http-run-response.png)

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

图像:

预览图像   服务   工具窗口：

![HTTP response 包含图像](https://resources.jetbrains.com.cn/help/img/idea/2026.3/http_response_with_image.png)

PDF:

在   服务  工具窗口预览 PDF 文件。 要禁用在   服务  工具窗口中显示 PDF 预览，请点击 ![响应视图设置](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app-client.expui.general.show.svg)并清除   启用内联 PDF 预览  选项。

![HTTP响应包含PDF](https://resources.jetbrains.com.cn/help/img/idea/2026.3/http_response_with_pdf.png)

HTML:

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

![HTTP 响应包含 HTML](https://resources.jetbrains.com.cn/help/img/idea/2026.3/http_response_with_html.png)

如果您有一个 [响应处理脚本](#using-response-handler-scripts)，作为该脚本一部分执行的测试结果将显示在   服务   工具窗口的   测试   选项卡中。 您可以点击每个测试，以快速导航到相应响应处理脚本中的测试源代码。

![服务工具窗口的 Tests 选项卡](https://resources.jetbrains.com.cn/help/img/idea/2026.3/http-request-failed-tests.png)

如果您订阅了事件流，IntelliJ IDEA 会在   服务  工具窗口中显示事件。 在这里，您还可以查看客户端服务器连接的状态，并通过点击 ![停止](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app-client.expui.run.stop.svg)终止连接。 根据内容类型（  `text/event-stream` 或  `application/x-ndjson` ），响应将格式化为纯文本或换行分隔的 JSON。 您可以编写一个响应处理脚本来 [处理事件流的每一行](http-response-handling-examples.html#stream_scripting)。

![服务器发送事件](https://resources.jetbrains.com.cn/help/img/idea/2026.3/http_client_json_event_stream.png)

[重定向](exploring-http-syntax.html#response-redirect) 流事件到文件目前不支持。

Procedure: 在编辑器中打开响应文件

1. 将文本光标放在您要打开的响应链接处。

2. 请执行以下操作之一：

* 在主菜单中，前往 `视图 | 跳转到源` 。

* 按 `Ctrl+B` (Windows), `⌘ B` (macOS), `⌘ B` (IntelliJ IDEA Classic (macOS)), `⌘ B` (macOS System Shortcuts), `Ctrl+B` (XWin), `Ctrl+B` (GNOME), `Ctrl+B` (KDE), `Ctrl+Alt+G` (Emacs), `F12` (Sublime Text), `F12` (Sublime Text (macOS)), `F12` (Visual Studio), `F12` (Visual Studio (macOS)), `Ctrl+B` (NetBeans), `F3` (Eclipse), `F3` (Eclipse (macOS)) 或 `F4` (Windows), `⌘ ↓` (macOS), `F4` (IntelliJ IDEA Classic (macOS)), `F4` (macOS System Shortcuts), `F4` (XWin), `F4` (GNOME), `F4` (KDE), `F4` (Emacs), `F4` (Sublime Text), `F4` (Sublime Text (macOS)), `F4` (Visual Studio), `⌘ ↓` (Visual Studio (macOS)), `F4` (NetBeans), `F12` (Eclipse), `F3` (Eclipse (macOS))。

* 在 服务 工具窗口或在编辑器中（针对临时文件）， `Ctrl+Click` (Windows), `Ctrl+Click` (macOS), `Ctrl+Click` (IntelliJ IDEA Classic (macOS)), `Ctrl+Click` (macOS System Shortcuts), `Ctrl+Click` (XWin), `Ctrl+Click` (GNOME), `Ctrl+Click` (KDE), `Ctrl+Click` (Emacs), `Ctrl+Click` (Sublime Text), `Ctrl+Click` (Sublime Text (macOS)), `Ctrl+Click` (Visual Studio), `Ctrl+Click` (Visual Studio (macOS)), `Ctrl+Click` (NetBeans), `Ctrl+Click` (Eclipse), `Ctrl+Click` (Eclipse (macOS)) 响应行中的链接。

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

HTTP 客户端 支持 JSONPath 查询，使您能够解析和提取接收到的 JSON 文档的数据。 要做到这一点，请在您的 [响应处理程序脚本](#using-response-handler-scripts)中使用以下功能：

```HTTP_REQUEST_FULL
jsonPath(ObjectToParse, JSONPathExpression)

```

请使用  `jsonPath`  实时模板 快速插入此函数。

1. 在请求之后，在响应处理脚本部分，开始键入  `> jsonPath` 。

2. 按 `Enter` (Windows), `⏎` (macOS), `⏎` (IntelliJ IDEA Classic (macOS)), `⏎` (macOS System Shortcuts), `Enter` (XWin), `Enter` (GNOME), `Enter` (KDE), `Enter` (Emacs), `Enter` (Sublime Text), `⏎` (Sublime Text (macOS)), `Enter` (Visual Studio), `⏎` (Visual Studio (macOS)), `Enter` (NetBeans), `Enter` (Eclipse), `⏎` (Eclipse (macOS)) 展开实时模板并完成 JSONPath 表达式。

例如，此表达式将检索并打印第一个元素内的  `幻灯片`  数组的  `标题`  字段的值，该数组是  `slideshow`  对象的一部分：

```HTTP_REQUEST_FULL
GET https://examples.http-client.intellij.net/json

> {%
    client.log(jsonPath(response.body, "$.slideshow.slides[0].title",))
%}

```

在   响应处理程序   选项卡中预览所获取的值，位于   服务   工具窗口中。

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

HTTP 客户端 支持 XPath 表达式，允许您解析和提取接收到的 XML 文档中的数据。

1. 在您的 [响应处理程序脚本](#using-response-handler-scripts)中，请使用以下函数：

```HTTP_REQUEST_FULL
xpath(XMLToParse, XPathExpression)

```

2. 在  `XMLToParse`  输入要解析的 XML 内容（例如，  `response.body` ），在  `XPathExpression`  输入您的 XPath 表达式。

例如：

```HTTP_REQUEST_FULL
GET https://examples.http-client.intellij.net/xml

> {%
    client.log(xpath(response.body, '//slide[@type="all"][1]/title/text()'))
%}

```

Procedure: 在临时文件中比较响应

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

* 执行以下任一操作：

* 将插入符置于响应文件链接处。 按 `Alt+Enter` (Windows), `⌥ ⏎` (macOS), `⌥ ⏎` (IntelliJ IDEA Classic (macOS)), `⌥ ⏎` (macOS System Shortcuts), `Alt+Enter` (XWin), `Alt+Enter` (GNOME), `Alt+Enter` (KDE), `Alt+Enter` (Emacs), `Alt+Enter` (Sublime Text), `⌥ ⏎` (Sublime Text (macOS)), `Alt+Enter` (Visual Studio), `⌥ ⏎` (Visual Studio (macOS)), `Alt+Enter` (NetBeans), `Ctrl+1` (Eclipse), `⌘ 1` (Eclipse (macOS)) 并选择 与 <response name> 比较 意图操作。

* 点击 ![比较响应](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.vcs.diff.svg) 图标并从列表中选择 与 <response name> 比较 ： ![比较请求历史中的响应](https://resources.jetbrains.com.cn/help/img/idea/2026.3/ps_compare_responses_menu.png)

Procedure: 在请求历史中比较响应

当从物理文件执行请求时，响应输出的链接会添加到 [requests' history](#requests_history) 中。

1. 将插入符置于响应文件链接处。 在主菜单中，进入  `视图 | 跳转到源` ，或者按 `Ctrl+B` (Windows), `⌘ B` (macOS), `⌘ B` (IntelliJ IDEA Classic (macOS)), `⌘ B` (macOS System Shortcuts), `Ctrl+B` (XWin), `Ctrl+B` (GNOME), `Ctrl+B` (KDE), `Ctrl+Alt+G` (Emacs), `F12` (Sublime Text), `F12` (Sublime Text (macOS)), `F12` (Visual Studio), `F12` (Visual Studio (macOS)), `Ctrl+B` (NetBeans), `F3` (Eclipse), `F3` (Eclipse (macOS))或 `F4` (Windows), `⌘ ↓` (macOS), `F4` (IntelliJ IDEA Classic (macOS)), `F4` (macOS System Shortcuts), `F4` (XWin), `F4` (GNOME), `F4` (KDE), `F4` (Emacs), `F4` (Sublime Text), `F4` (Sublime Text (macOS)), `F4` (Visual Studio), `⌘ ↓` (Visual Studio (macOS)), `F4` (NetBeans), `F12` (Eclipse), `F3` (Eclipse (macOS))以在新的编辑器选项卡中打开此文件。

2. 请前往  `查看 | 比较 与` ，或按下 `Ctrl+D` (Windows), `⌘ D` (macOS), `⌘ D` (IntelliJ IDEA Classic (macOS)), `⌘ D` (macOS System Shortcuts), `Ctrl+D` (XWin), `Ctrl+D` (GNOME), `Ctrl+D` (KDE), `Ctrl+D` (Emacs), `Ctrl+D` (Sublime Text), `⌘ D` (Sublime Text (macOS)), `Ctrl+D` (Visual Studio), `⌘ D` (Visual Studio (macOS)), `Ctrl+D` (NetBeans), `Ctrl+D` (Eclipse), `⌘ D` (Eclipse (macOS))。 IntelliJ IDEA 将提示您从  `httpRequests` 文件夹中打开一个响应文件。

3. 请选择您希望用于比较当前文件的响应文件，然后点击   打开  。

这两个响应文件将在 [差异查看器](differences-viewer.html)中打开，允许您比较它们的内容。

![比较 HTTP 响应](https://resources.jetbrains.com.cn/help/img/idea/2026.3/compare_http_responses_diff.png)

## 查看请求历史

IntelliJ IDEA 自动将最近执行的 50 个请求保存到  `http-requests-log.http`  文件中，该文件存储在项目级的  `.idea/httpRequests/`  目录下。 通过请求历史，您可以快速导航到特定响应并且 [再次发出任何请求](#run_request)。 如果从请求历史中再次发出请求，其执行信息和响应输出链接将添加到请求历史文件的顶部。

> **Note:**
> 为防止将请求保存到请求历史记录中，请在请求前添加带有 [@no-log](exploring-http-syntax.html#enable-disable-saving-request) 标签的注释行。 如果请求包含某些敏感数据，而您不希望将其记录到日志中，此方法会很有用。

Procedure: 打开请求历史

* 在请求的编辑器面板顶部，点击 ![显示 HTTP 请求历史记录](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.history.svg)。

* 从主菜单中选择  `工具 | HTTP 客户端 | 显示 HTTP 请求历史` 。

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

* HTTP 客户端 可以将输出重定向到自定义文件或目录。 它支持用于强制重定向和软重定向的两个运算符：

* `>>` 运算符总是会创建一个新文件，如果请求的文件名已经存在，则在文件名后添加一个 `-n` 后缀。

* `>>!` 操作符会在文件已存在时重写文件。

## 管理 Cookie

通过响应收到的 cookies 会自动保存到  `http-client.cookies`  文件中，位于  `.idea/httpRequests/`  目录下。 可以保存的 cookies 数量限制为  300 。 一个 cookie 的  名称 和  值 会自动包含在随后对匹配该 cookie 所指定的  域 和  路径 的 URL 的每个请求中，前提是尚未到达  到期日期 。

如果您希望 Cookie 永不过期，您可以输入  `-1`  作为  `日期`  参数。 例如：

```HTTP_REQUEST_FULL
# domain path name value date

.example.com / userId 0x4d2 -1

```

![http-cookies 文件](https://resources.jetbrains.com.cn/help/img/idea/2026.3/ps_http_cookie.png)

> **Note:**
> 您可以通过在请求之前添加包含 [@no-cookie-jar](exploring-http-syntax.html#enable-disable-saving-cookies) 标签的注释行，防止保存接收到的 cookie 到 cookie jar 中。

如果您想在 HTTP 请求中设置自定义 cookies，您可以使用  `Cookie`  标头。 请输入您的 cookies 列表，格式为用分号分隔的一对  `name=value` ，例如：

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

```

## gRPC 请求

> **Note:**
> 要处理 gRPC 请求，您需要安装并启用以下插件： [Protocol Buffers](https://plugins.jetbrains.com/plugin/14004-protocol-buffers) 和 [gRPC](https://plugins.jetbrains.com/plugin/16889-grpc)。

HTTP 客户端 支持 gRPC 请求。 要让 HTTP 客户端将您的请求视为 gRPC 请求，请使用  `GRPC`  关键字开头。

基于  `.proto`  文件，IntelliJ IDEA 为 gRPC 提供了智能补全功能：包括所有已知的 gRPC 服务、特定服务器的单向和服务器流式方法，以及请求体中已接受消息的字段。 如果您在项目中没有  `.proto` 文件，如果服务器支持 [gRPC 反射](https://github.com/grpc/grpc/blob/master/doc/server-reflection.md)，代码补全功能仍然可用，它为 HTTP 客户端提供有关可访问服务的信息。

![HTTP 客户端 支持 gRPC 请求](https://resources.jetbrains.com.cn/help/img/idea/2026.3/http_client_supports_g_rpc_requests.animated.gif)

Procedure: 从 proto 文件生成 gRPC 请求

* 在 proto 文件中，点击 ![gRPC](https://resources.jetbrains.com.cn/help/img/idea/2026.3/grpc.icons.procedure.svg)   在 HTTP 客户端中生成请求   附近的 RPC 方法。

![从 PROTO 文件生成 gRPC 请求](https://resources.jetbrains.com.cn/help/img/idea/2026.3/go_generate_a_g_rpc_request_from_proro_files.animated.gif)

Procedure: 从 Endpoints 工具窗口生成 gRPC 请求

就像对于 HTTP 请求一样，您也可以使用   端点   工具窗口生成 gRPC 请求。

1. 打开   端点   工具窗口：  `视图 | 工具窗口 | 端点` 。 如果在您的项目中定义了 gRPC 端点，您将会看到它们。

2. 选择一个终结点。 这将在   HTTP 客户端  选项卡中生成一个示例请求。

3. 完成请求并点击   提交请求  。 您可能需要将默认地址和端口替换为您自己的值。 对于请求体，请使用基于 proto 文件中的数据结构的代码补全。

4. 在   HTTP 客户端   标签的下半部分预览响应。

![HTTP 客户端 选项卡](https://resources.jetbrains.com.cn/help/img/idea/2026.3/endpoints_grpc_request_response.png)

Procedure: 发送 gRPC 元数据

* 在您的  `GRPC`  请求下方，使用以下语法输入 gRPC 元数据：  `Metadata-key: Value` 。

例如：

```HTTP_REQUEST_FULL
GRPC localhost:8080
X-Myhostname: Example.org

```

Procedure: 使用安全 gRPC

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

* 在地址前输入  `grpcs` ，例如：

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

```

> **Tip:**
> 当前在 gRPC 请求中不支持指定客户端证书。

> **Note:**
> 目前，HTTP 客户端 中可以执行的 RPC 类型是单向和服务器流式。 与普通 HTTP 请求相同，请求正文和响应都是纯 JSON 文件。

## WebSocket 请求

HTTP 客户端 支持 WebSocket 请求。 要使 HTTP 客户端 将您的请求视为 WebSocket 请求，请从  `WEBSOCKET`  关键字开始，后跟服务器地址。 请求具有以下结构：

```HTTP_REQUEST_FULL
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"
}

```

> **Note:**
> 尽管  `Content-Type`  标头不用于 WebSocket 连接，您仍可以在 IntelliJ IDEA 的 WebSocket 请求中使用它来高亮显示传输数据的语法。

要加快编写 WebSocket 请求，您可以：

* 在 `.http` 文件的编辑器面板顶部点击 ![添加请求按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)，并选择 WebSocket 请求 。

* 在 `.http` 文件中，键入 `wsr` 并按 `Enter` (Windows), `⏎` (macOS), `⏎` (IntelliJ IDEA Classic (macOS)), `⏎` (macOS System Shortcuts), `Enter` (XWin), `Enter` (GNOME), `Enter` (KDE), `Enter` (Emacs), `Enter` (Sublime Text), `⏎` (Sublime Text (macOS)), `Enter` (Visual Studio), `⏎` (Visual Studio (macOS)), `Enter` (NetBeans), `Enter` (Eclipse), `⏎` (Eclipse (macOS)) 以应用 WebSocket 实时模板。

Procedure: 发送多条消息

* 请使用  `===` 分隔符发送多条消息：

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

```

Procedure: 在服务器响应后发送消息

* 在消息之前，输入  `=== wait-for-server` 。

这将使 HTTP 客户端 在发送消息之前等待服务器响应。 您可以通过重复  `=== wait-for-server`  行等待多个响应。 例如，将在 3 次服务器响应后发送以下消息：

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

```

Procedure: 交互发送消息

一旦您建立了连接，您可以直接从   服务  工具窗口与您的服务器进行交互。 您可以发送消息并查看每条新消息的服务器响应。

1. 在   服务   工具窗口中，选择一个已打开的连接。

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

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

4. 按 `Ctrl+Enter` (Windows), `⌘ ⏎` (macOS), `⌘ ⏎` (IntelliJ IDEA Classic (macOS)), `⌘ ⏎` (macOS System Shortcuts), `Ctrl+Enter` (XWin), `Ctrl+Enter` (GNOME), `Ctrl+Enter` (KDE), `Ctrl+Enter` (Emacs), `Ctrl+Enter` (Sublime Text), `⌘ ⏎` (Sublime Text (macOS)), `Ctrl+Enter` (Visual Studio), `⌘ ⏎` (Visual Studio (macOS)), `Ctrl+Enter` (NetBeans), `Ctrl+Enter` (Eclipse), `⌘ ⏎` (Eclipse (macOS)) 发送请求。

在窗口的上部，您会看到服务器响应。

![服务工具窗口](https://resources.jetbrains.com.cn/help/img/idea/2026.3/websocket_interactive.png)

## GraphQL

IntelliJ IDEA 提供在 HTTP 请求体中发送 GraphQL 操作的支持。 您可以通过 HTTP 或 [WebSocket](#websocket) 发送它们。

> **Tip:**
> 若要在请求体中支持 GraphQL 语言（语法高亮、快速导航到模式等），您可以安装并启用 [GraphQL](https://plugins.jetbrains.com/plugin/8097-graphql) 插件。

Procedure: 编写包含 GraphQL 查询的 HTTP 请求

1. 在  `.http`  文件中，输入  `GRAPHQL`  关键字，后跟服务器地址。

2. 在请求正文中，编写您的 GraphQL 操作（查询、变更或订阅），例如：

```HTTP_REQUEST_FULL
### HTTP request with GraphQL query
GRAPHQL http://localhost:8080/graphql

query {
  toDos {
    title,
    completed,
    author {
      username
    }
  }
}

```

要加快使用 GraphQL 查询编写 HTTP 请求，您可以：

* 在 `.http` 文件的编辑器面板顶部点击 ![添加请求按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)，并选择 GraphQL 查询请求 。

* 在 `.http` 文件中，键入 `gqlr` 并按 `Enter` (Windows), `⏎` (macOS), `⏎` (IntelliJ IDEA Classic (macOS)), `⏎` (macOS System Shortcuts), `Enter` (XWin), `Enter` (GNOME), `Enter` (KDE), `Enter` (Emacs), `Enter` (Sublime Text), `⏎` (Sublime Text (macOS)), `Enter` (Visual Studio), `⏎` (Visual Studio (macOS)), `Enter` (NetBeans), `Enter` (Eclipse), `⏎` (Eclipse (macOS)) 应用 GraphQL 实时模板。

Procedure: 使用 GraphQL 变量

在 HTTP 请求主体中，您可以使用 GraphQL 变量来传递一些与查询字符串分开的动态数据。

* 在 query 部分之后，输入一个 JSON 变量字典：

```JAVASCRIPT
query ($name: String!, $capital: String!) {
  country(name: $name, capital: $capital) {
    name
    capital
  }
}

{
  "name": "France",
  "capital": "Paris"
}

```

您也可以将 [HTTP 客户端环境变量](http-client-variables.html) 用作 GraphQL 变量值。 例如，在这个 JSON 中，  `"{{Author}}"`  是一个环境变量；它在运行时的值取决于您在发送请求时选择的环境：

```JSON
{
  "author": "{{Author}}"
}

```

> **Note:**
> 您可以通过在请求体中按 `Alt+Enter` (Windows), `⌥ ⏎` (macOS), `⌥ ⏎` (IntelliJ IDEA Classic (macOS)), `⌥ ⏎` (macOS System Shortcuts), `Alt+Enter` (XWin), `Alt+Enter` (GNOME), `Alt+Enter` (KDE), `Alt+Enter` (Emacs), `Alt+Enter` (Sublime Text), `⌥ ⏎` (Sublime Text (macOS)), `Alt+Enter` (Visual Studio), `⌥ ⏎` (Visual Studio (macOS)), `Alt+Enter` (NetBeans), `Ctrl+1` (Eclipse), `⌘ 1` (Eclipse (macOS)) (   显示上下文操作​​  ) 并选择   添加 GraphQL JSON 变量块   快速向 GraphQL 查询中添加一个变量块。

Procedure: 从 Spring 控制器创建 GraphQL 请求

如果您在 Spring 应用程序中使用 GraphQL，您可以使用专用的坑图标快速从控制器源代码创建 HTTP 请求。

> **Tip:**
> 要使用此功能，请安装并启用 [GraphQL](https://plugins.jetbrains.com/plugin/8097-graphql)和 [Spring GraphQL](https://plugins.jetbrains.com/plugin/22807-spring-graphql)插件。
>
>
>
> IntelliJ IDEA [建议安装](managing-plugins.html#suggested-plugins) Spring GraphQL 插件，如果它在您的 Spring 项目中检测到 GraphQL 依赖项。

1. 在您的 Spring controller 代码中，点击 ![GraphQL 错误图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/icons.newui.graphql.svg) 注解旁边的  `@QueryMapping` 、  `@MutationMapping`  或  `@SubscriptionMapping`  注解。

2. 在打开的上下文菜单中，选择   在 HTTP 客户端中生成请求  。

![从 Spring GraphqL 生成 HTTP 请求](https://resources.jetbrains.com.cn/help/img/idea/2026.3/http_client_create_graphql_from_spring.png)

这将向  `GRAPHQL` 文件添加一个新的  `generated-requests.http` 请求。

## 配置代理设置

Procedure:

1. 在   设置  对话框（ `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS))）中，选择   系统设置  下的   外观与行为  ，然后选择   HTTP 代理  。

2. 在打开的 [HTTP Proxy](settings-http-proxy.html)对话框中，选择   手动代理配置  并指定以下内容：

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

* 要启用授权，请选择 代理身份验证 复选框，并在相应字段中输入用户名和密码。

## 设置客户端 SSL/TLS 证书

如果 HTTP 服务器要求 SSL/TLS 认证以实现安全通信，您可能需要在发送 HTTPS 请求之前指定客户端证书。 在 HTTP 客户端中，您可以使用 [私人环境文件](http-client-variables.html)设置客户端证书。

> **Tip:**
> 目前，在 [HTTP 客户端 CLI](http-client-cli.html) 中不支持配置 SSL/TLS 证书（您可以在 [IJPL-69643](https://youtrack.jetbrains.com/issue/IJPL-69643/HttpClient-add-certificate-support-in-CLIrunner) 中为此功能请求投票）。 HTTP 客户端 CLI 中唯一受支持的 SSL 相关设置是 [禁用证书验证功能](#disable_certificate_verification)。

Procedure: 指定证书路径

1. 在一个  `.http`  文件中，在   使用以下方式运行   列表中，选择   添加环境到私人文件……  。

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

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

```

> **Tip:**
> 您可以指定绝对路径或相对于  `http-client.private.env.json`  文件的路径。 如果环境文件存储在 scratches 中，您可以另外指定一个相对于项目根目录的路径。 开始输入路径以获取代码补全弹出窗口。

或者，您可以将  `clientCertificate`  和  `clientCertificateKey`  描述为对象，这样您可以指定证书格式以及路径。 例如：

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

```

Procedure: 设置证书密码

如果您在生成客户端证书时使用了密码短语，则应将其提供给 HTTP 客户端。

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

```JSON
{
    "dev": {
        "SSLConfiguration": {
            "clientCertificate": "file.crt",
            "hasCertificatePassphrase": true
        }
    }
}

```

2. 点击 ![为证书密码短语设置值](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.edit.svg)，或在将文本光标置于  `hasCertificatePassphrase`  时，按 `Alt+Enter` (Windows), `⌥ ⏎` (macOS), `⌥ ⏎` (IntelliJ IDEA Classic (macOS)), `⌥ ⏎` (macOS System Shortcuts), `Alt+Enter` (XWin), `Alt+Enter` (GNOME), `Alt+Enter` (KDE), `Alt+Enter` (Emacs), `Alt+Enter` (Sublime Text), `⌥ ⏎` (Sublime Text (macOS)), `Alt+Enter` (Visual Studio), `⌥ ⏎` (Visual Studio (macOS)), `Alt+Enter` (NetBeans), `Ctrl+1` (Eclipse), `⌘ 1` (Eclipse (macOS)) 并选择   为“证书密码短语”设置值。  。

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

![HTTP 客户端安全值窗口](https://resources.jetbrains.com.cn/help/img/idea/2026.3/http_client_set_passphrase.png)

如果您现在不想输入密码，您可以省略第二步。 在这种情况下，IntelliJ IDEA 会在您执行 HTTPS 请求时要求您输入密码短语。

Procedure: 禁用证书验证

出于开发目的，您可能有一个带有自签名或过期证书的主机。 如果您信任此主机，您可以禁用其证书的验证。

* 在  `http-client.private.env.json` 文件中，将  `verifyHostCertificate": false` 添加到  `SSLConfiguration` 对象。 例如：

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

```

如果您在此环境中运行请求，IntelliJ IDEA 将不会验证主机证书。

###   `SSLConfiguration`  参考 

|  特性  |  类型  |  描述  |
| --- | --- | --- |
|   `clientCertificate`   |  字符串或对象  |     指定要发送到服务器的客户端证书：证书文件的路径，或具有  `路径`  和  `format`  特性的对象。       支持的格式为  `PEM` 、  `P12`  和  `DER` 。 如果省略  `format` ，HTTP 客户端会根据文件扩展程序检测它：  `.pem`  和  `.crt`  解析为  `PEM` ，  `.p12` 、  `.pkcs12`  和  `.pfx`  解析为  `P12` ，  `.der`  和  `.cer`  解析为  `DER` 。 对于任何其他扩展程序，请显式指定格式。     |
|   `clientCertificateKey`   |  字符串或对象  |     如果密钥存储在单独的文件中，请指定客户端证书的私钥：密钥文件的路径，或具有  `路径`  和  `format`  特性的对象。 请将此特性与  `clientCertificate`  一起使用。       支持的格式为  `PEM`  和  `DER` 。 如果省略  `format` ，HTTP 客户端会根据文件扩展程序检测它：  `.pem`  和  `.key`  解析为  `PEM` ，  `.der`  解析为  `DER` 。 对于任何其他扩展程序，请显式指定格式。     |
|   `hasCertificatePassphrase`   |  布尔  |     指定客户端证书是否受密码短语保护。 默认值为  `false` 。       如果将其设置为  `true` ，IntelliJ IDEA 会要求输入密码短语，而不是从环境文件中读取它。 请将此特性与  `clientCertificate`  一起使用。 有关更多详细信息，请参阅 [设置证书密码短语](#passphrase)。     |
|   `verifyHostCertificate`   |  布尔  |     指定是否验证发送请求的目标主机的证书。 默认值为  `true` 。       如果将其设置为  `false` ，IntelliJ IDEA 会接受任何主机证书。 请参阅 [禁用证书验证](#disable_certificate_verification)。     |

> **Note:**
> IntelliJ IDEA 读取  `SSLConfiguration`  时仅从  `http-client.private.env.json`  文件读取。 在  `http-client.env.json`  中，它会被视为常规变量，对请求执行没有影响。

## See also

### 过程

[RESTful Web 服务](restful-webservices.html)

