HTTP 客户端
通过 HTTP 客户端 插件,您可以直接在 JetBrains Rider 代码编辑器 中创建、编辑和执行 HTTP 请求。

您需要编写并运行 HTTP 请求的两个主要用例:
当您开发 RESTful 网络服务时,并希望确保其按预期工作、符合规范要求并正确响应。
当您开发处理 RESTful 网络服务的应用程序时。 在这种情况下,在您开始开发之前,研究对服务的访问和所需的输入数据是很有帮助的。 在开发过程中,您也可以从应用程序外部调用此 web 服务。 这可能有助于在您的应用程序产生意外输出而在代码中未检测到逻辑错误,并且您怀疑瓶颈在于与 web service 交互时,定位错误。
HTTP 请求存储在 .http 和 .rest 文件中,并用 图标标记。
对 HTTP 文件的支持包括以下功能:
请求、请求部分和响应处理脚本的 Code folding
重新格式化 请求以符合您的 HTTP 请求 代码样式。
请求头字段和文档标签的内联文档
查看 HTTP 请求文件的 结构
请求消息体内的 Web 语言中的语言注入
如有必要,在开始之前,请在 HTTP 代理 页面的 设置/首选项 对话框中配置代理设置(Ctrl+Alt+S)。
创建 HTTP 请求文件
您可以在临时文件或 HTTP 请求 类型的物理文件中处理 HTTP 请求。 每个文件可以包含多个请求,并且您可以根据需要创建任意数量的文件。
草稿文件可用于在开发期间测试 HTTP 请求。 草稿文件不存储在项目中,因此 JetBrains Rider 可以修改它们并添加有关请求的额外信息。 当从草稿文件执行 HTTP 请求时,响应输出文件的链接会添加到请求下方以及 请求历史文件顶部。
创建 HTTP 请求 草稿文件
按 Ctrl+Alt+Shift+Insert 并选择 HTTP 请求。
在解决方案窗口中切换到 草稿 视图,右键单击要添加请求文件的文件夹,并从上下文菜单中选择 。
物理文件可以用于记录、测试和验证 HTTP 请求。 项目内存储了物理文件,JetBrains Rider 不会修改它们。 从物理文件执行 HTTP 请求时,该文件不会被修改。 已执行请求的信息及其响应输出文件的链接被添加到 请求历史文件的顶部。
创建一个物理 HTTP 请求文件
右键单击要添加请求文件的文件夹,并从上下文菜单中选择 。
移动 HTTP 请求
您可以使用 Move 重构 F6 将 HTTP 请求从临时文件移至物理文件,也可以在不同的物理文件之间移动。
在编辑器中,将文本光标置于要移动的请求处,然后执行以下操作之一:
从主菜单或上下文菜单中选择 。
按 Alt+Enter 并选择 移动HTTP 请求 上下文操作。
按下 F6。
在打开的 移动HTTP 请求 对话框中,执行以下操作:
在 路径 字段中,从列表中选择一个现有的 .http 文件,或点击
以找到该文件。
您也可以手动输入文件的完整路径。 如果您指定一个不存在的文件名称,将会自动创建一个具有提供的名称的新文件。
在 请求 列表中,选中您要移动的请求旁边的复选框。
编写 HTTP 请求
JetBrains Rider 使用 Editor 中的 HTTP 请求 格式,这提供了一种创建、执行和存储 HTTP 请求信息的简单方法。 您可以直接在 创建的 HTTP 请求 文件中输入它们,使用以下通用语法:
在 ### 分隔符之后,您可以输入任何以 # 或 // 开头的注释。
为了加快撰写 HTTP 请求,您可以:
点击 。 如果在编辑器中打开了请求文件,这将会向打开的文件添加请求模板。 否则,这将创建一个新的 .http 临时文件。
点击
位于请求编辑器面板的顶部。 在弹出菜单中,选择要添加的请求类型。

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

创建自定义 HTTP 方法
如果 Web 服务要求您使用自定义 HTTP 方法,您可以将这些方法添加到 JetBrains Rider 中,并在 HTTP 请求中使用它们。
在 .http 文件中,以大写字母键入一个自定义方法。
当该方法被标记为未知时,请按 Alt+Enter (显示上下文操作) 并选择 添加自定义 HTTP 方法。

JetBrains Rider 将现在识别它为有效的 HTTP 方法。 您可以在 IDE 设置中(Ctrl+Alt+S), 找到所有自定义 HTTP 方法(并添加新方法)。
HTTP/2
从版本 2024.1 开始,JetBrains Rider 在 HTTP 请求中提供对 HTTP/2 的支持。 您可以在 URL 部分后指定 HTTP 版本,例如:
如果未指定版本,HTTP 客户端 会尝试对安全连接使用 HTTP/2(如果 HTTP/2 协商失败,将退回到 HTTP/1.1),对非安全连接使用 HTTP/1.1。
选择 HTTP 版本
在请求 URL 后面输入一个空格,然后按 Ctrl+Space 或开始输入
HTTP。从补全列表中选择一个建议值:
HTTP/1.1强制使用 HTTP/1.1。HTTP/2启用 HTTP/2 的使用。HTTP/2(预先知识)使用 HTTP/2 发送而不升级到 HTTP/1.1。 如果您知道服务器能够处理 HTTP/2 连接,请使用它。

要了解 HTTP 客户端 功能,您可以探索 HTTP 请求集合 ,它是一个精选的组合请求。
从 HTTP 请求集合中打开请求
点击请求编辑面板顶部的 示例 快捷链接。
在弹出菜单中,选择您希望打开的 HTTP 请求 集合:

转换 cURL 请求
如果您正在处理 cURL 请求,您可以在 cURL 请求和 编辑器中的 HTTP 请求 格式之间进行转换。
将 cURL 转换为 HTTP 请求
将 cURL 请求粘贴到 HTTP 请求文件中。 JetBrains Rider 将其转换为 HTTP 请求格式,并将原始 cURL 请求注释掉以供以后参考。

或者,点击
在 HTTP 请求编辑器面板顶部并选择 将cURL 转换为 HTTP 请求。
在 将 cURL 转换为 HTTP 请求 对话框中,输入或粘贴您要转换的 cURL 请求。

请考虑以下示例 cURL 请求:
JetBrains Rider 将把它转换为:
该转换器支持以下 cURL 选项:
选项 | 描述 |
|---|---|
请求要使用的方法。 | |
请求中包含的请求头。 | |
用户提交请求时需要提供的凭据和使用的授权方法。 | |
要在 POST 请求中发送的数据。 | |
发送在 POST 请求中的 multipart/form-data 消息。 | |
要获取的 URL(主要在配置文件中指定 URL 时使用)。 | |
定义是否将 HTTP 响应头包含在输出中。 | |
启用详细操作模式。 | |
允许在请求的页面已移至不同位置时重新发送请求。 |
将 HTTP 请求转换为 cURL
将文本光标放置在您想要转换为 cURL 格式的 HTTP 请求处。
按 Alt+Enter 并选择 转换为cURL 并复制到剪贴板。
或者,您可以点击 HTTP 请求编辑面板顶部的 转换(C) 快捷链接并选择 将光标下的 HTTP 请求转换为 cURL 并复制。
这将根据 HTTP 请求生成一个 cURL 请求,并将其复制到剪贴板。
导入 Postman 集合和环境
Postman 集合是一种将相关 HTTP 请求组合在一起的方法。 在 Postman 中,您可以导出集合以及 JSON 格式的变量。 通过 HTTP 客户端,您可以将这些文件导入 JetBrains Rider,以将它们转换为各自的 .http 和环境文件。
导入 Postman 集合到 HTTP 客户端
从 Postman 导出集合. 您还可以导出环境文件,以便在 JetBrains Rider 中使用它们。
将文件以以下其中一种方式导入 JetBrains Rider:
如果导出的文件在您的项目中,右键点击它并选择 将集合转换为 .http 文件。
打开任何 .http 文件,点击工具栏中的
,然后选择 Postman 集合。
请按 Ctrl+Shift+A ,开始输入
从 Postman 集合文件导入,并选择相应的操作。
如果您还想导入一个环境文件,请选择 附加环境 并指定该文件。 它将被转换为 HTTP 客户端 环境格式,并且该环境将为指定的 .http 文件选择。
在出现的窗口中,点击 转换。

从 OpenAPI 规范创建请求
处理 OpenAPI Specification 文件时,您可以创建到指定端点的 HTTP 请求。
创建一个 HTTP 请求到一个端点
在 OpenAPI 规范文件中,点击端点定义旁边编辑器边栏中的
。
或者,打开 ,右键点击一个端点,然后选择 在 HTTP 客户端 中生成请求。
JetBrains Rider 将创建一个新的 HTTP 请求,并将其保存在 generated-requests.http 临时文件中。
如果您想快速向端点发送请求并且不想保存它,您可以在 HTTP 客户端 选项卡中使用 端点 工具窗口。
JetBrains Rider 提供基于现有 OpenAPI 规范的请求 URL 及请求体(JSON 格式)的补全功能。 这不仅适用于本地,也适用于远程规范(在 IDE 设置中添加它们以启用自动完成)。

重命名端点及其用法
请使用 重命名重构 同时重命名在 HTTP 请求中定义的端点及其用法。
执行以下任意操作:
在 OpenAPI 规范文件中,将文本光标放在您想要重命名的端点定义处。
在 HTTP 请求文件中,将插入点放在您要重命名的 URL 路径段。
从主菜单或上下文菜单中选择 ,或者按 Shift+F6。
在打开的 重命名 对话框中,指定新端点的名称。
预览并应用更改。
JetBrains Rider 将重命名该端点及其用法。
使用 响应处理程序 和 预请求处理脚本
借助响应处理程序脚本,您可以通过编程方式对接收到的 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 import 功能来访问本地 JavaScript 文件中定义的变量和函数。
从 JavaScript 文件中导出所需的值。 HTTP 客户端 支持以下格式的
导出语句: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语句: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
响应处理程序脚本和预检请求脚本是用 JavaScript ECMAScript 2023 编写的,代码辅助和文档由捆绑的 HTTP 预请求和响应处理器 库处理。 对于就地脚本,这一功能会自动启用。 对于外部脚本,您需要手动启用。
为响应处理程序和预请求脚本启用 JavaScript 编码帮助
按 Ctrl+Shift+A (查找操作)。
键入 使用 JavaScript 库 ,点击相应的操作,在打开的上下文菜单中选择 HTTP 预请求和响应处理器。
HTTP Response Handler 库公开了两个对象可用于编写响应处理程序脚本:
客户端对象存储会话元数据,可以在脚本中修改。客户端状态会被保留,直到您关闭 JetBrains Rider。 每个保存在client.global中的variable_name变量对于后续的 HTTP 请求都可作为{{variable_name}}访问。response保存有关接收响应的信息:其内容类型、状态、响应主体等。
要在编辑器中打开 HTTP 响应处理程序 库,请将文本光标放在库对象上,然后按 Ctrl+B。
响应处理程序脚本可以包含测试,这让您可以将 HTTP 客户端 作为测试框架使用。 创建测试时,调用 client.test(testName, function) 方法。 在测试中,您可以通过调用 client.assert(condition, message) 方法来断言一个条件,例如:
使用 Structure 工具窗口浏览 .http 文件
如果您的 .http 文件中有多个请求, 结构 工具窗口可以帮助您快速预览文件并进行导航。 工具窗口还显示请求部分,例如 标头、请求正文、预请求处理脚本 和 响应处理程序脚本。
打开 结构 工具窗口: 。
或者按 Alt+7。
在 结构 工具窗口中,点击 HTTP 方法或请求名称,或请求的任何部分。

您还可以通过右键点击它并选择 从那里发送请求。
执行 HTTP 请求
执行单个请求
如果您打算测试自己的 Web 服务,请确保其已部署并运行。
如果您定义了 环境 ,请在请求编辑面板顶部的 运行方式 列表中选择一个环境。
在边距中,点击请求旁的
。
顺序执行多个请求
您可以一次性运行 .http 文件中的所有请求。 这在处理复杂场景时非常有用,例如从服务器请求特定数据,保存为 client.global变量,然后发送包含该数据的后续请求。
打开文件 .http 。
在编辑器面板的顶部,点击
(在文件中运行所有请求)。
当请求执行时,JetBrains Rider 会自动为其创建一个专用的临时 HTTP 请求 运行/调试配置。 如果需要,您可以 将其保存为永久运行/调试配置。
在浏览器中打开请求
您可以在 Web 浏览器和预览 页面的 设置/首选项 对话框(Ctrl+Alt+S )中指定的浏览器中打开 HTTP 请求。
按 Alt+Enter 并选择 在Web 浏览器中打开 上下文操作。
处理 HTTP 请求运行/调试配置
当您 从编辑器执行 HTTP 请求时,JetBrains Rider 会自动创建一个包含该请求参数的临时运行/调试配置。 临时运行/调试配置与永久运行/调试配置的工作方式相同。 您可以使用 Run/Debug Configuration对话框更改其设置,并可选择将其保存为永久配置。
修改 HTTP 请求 运行/调试配置
保存临时 HTTP 请求 运行/调试配置
执行以下任意操作:
在 运行/调试配置 选择器中,选择 。
在 运行/调试配置 对话框中,选择配置并点击
。
使用运行/调试配置执行请求
执行以下任意操作:
在 运行/调试配置 选择器中,选择所需的运行配置。 然后点击
主工具栏或按 Shift+F10。
按 Alt+Shift+F10 ,从列表中选择所需的运行配置,然后按 Enter。
从其他 .http 文件导入 HTTP 请求
JetBrains Rider 允许您从其他 .http 文件中导入 HTTP 请求。 您可以:
点击 示例并选择 带有 Include 的请求 以获取您 IDE 中此功能的语法示例。
从另一个 .http 文件运行所有请求
在您的 .http 文件中,输入
run,然后输入您想要包含的另一个 .http 的名称。 如果文件在同一目录中,请输入其名称。 否则,指定其路径。 例如:run ./myFolder/get-requests.http点击
旁边的
run以发送此文件中的所有请求。
从另一个 .http 文件运行特定请求
在您的 .http 文件顶部,输入
import,然后输入另一个包含必要请求的 .http 的名称。请输入
run并指定您要运行的请求名称。您可以按 Ctrl+Space 查看导入文件中所有可用的请求。

覆盖从导入的 .http 文件中获取的变量
如果导入的 .http 文件包含变量,您可以为特定执行指定或更改其值。
请输
run并指定 .http 文件的名称或请求。在请求或文件名之后,以
(@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 请求时,JetBrains Rider 会自动将响应保存到 .idea/httpRequests/ 目录下的一个单独文件中。 您可以查看最近存储的 50 个响应,并通过 请求历史 导航到相应的文件。 如果请求是从一个 scratch 文件执行的,响应输出的链接也会添加在原始请求下面:

查看收到的响应
切换到 服務 工具窗口 ,该窗口会在接收到响应后自动打开。
默认情况下,服务器响应会按照请求头中 content-type 字段指定的格式显示。 若要将响应转换为其他格式,请点击
并选择 文本、 JSON、 XML 或 HTML。

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

在 服务 工具窗口预览 PDF 文件。 要禁用在 服务 工具窗口中显示 PDF 预览,请点击 并清除 启用 PDF 预览内联 选项。

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

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

如果您订阅了事件流,JetBrains Rider 会在 服务 工具窗口中显示事件。 在这里,您还可以查看客户端服务器连接的状态,并通过点击 终止连接。 根据内容类型(
text/event-stream 或 application/x-ndjson ),响应将格式化为纯文本或换行分隔的 JSON。 您可以编写一个响应处理脚本来 处理事件流的每一行。

重定向 流事件到文件目前不支持。
在编辑器中打开响应文件
将文本光标放在您要打开的响应链接处。
请执行以下操作之一:
在主菜单中,进入 .
按 Ctrl+B 或 F4。
在 服务 工具窗口或在编辑器中(针对临时文件), Ctrl+Click 响应行中的链接。
从 JSON 响应中使用 JSONPath 提取数据
HTTP 客户端 支持 JSONPath 查询,使您能够解析和提取接收到的 JSON 文档的数据。 要做到这一点,请在您的 响应处理程序脚本中使用以下功能:
请使用 jsonPath 实时模板 快速插入此函数。
在请求之后,在响应处理脚本部分,开始键入
> jsonPath。按 Enter 展开实时模板并完成 JSONPath 表达式。
例如,此表达式将检索并打印第一个元素内的
幻灯片数组的标题字段的值,该数组是幻灯片放映对象的一部分:GET https://examples.http-client.intellij.net/json > {% client.log(jsonPath(response.body, "$.slideshow.slides[0].title",)) %}在 响应处理程序 选项卡中预览所获取的值,位于 服务 工具窗口中。
使用 XPath 从 XML 响应中提取数据
HTTP 客户端 支持 XPath 表达式,允许您解析和提取接收到的 XML 文档中的数据。
在您的 响应处理程序脚本中,请使用以下函数:
xpath(XMLToParse, XPathExpression)在
XMLToParse输入要解析的 XML 内容(例如,response.body),在XPathExpression输入您的 XPath 表达式。
例如:
在临时文件中比较响应
当从临时文件执行请求时,响应输出文件的链接会添加到原始请求的下方。
执行以下任意操作:
将文本光标放在响应文件链接处。 按 Alt+Enter 并选择 与 <response name> 比较 意图操作。
点击
图标并从列表中选择 与 <response name> 比较:

在请求历史中比较响应
当从物理文件执行请求时,响应输出的链接会添加到 requests' history 中。
将文本光标放在响应文件链接处。 在主菜单中,进入 ,或者按 Ctrl+B 或 F4 以在新的编辑器选项卡中打开此文件。
请前往 ,或按下 Ctrl+D。 JetBrains Rider 将提示您从 httpRequests 文件夹中打开一个响应文件。
请选择您希望用于比较当前文件的响应文件,然后点击 打开。
这两个响应文件将在 差异查看器中打开,允许您比较它们的内容:

查看请求历史
JetBrains Rider 自动将最近执行的 50 个请求保存到 http-requests-log.http 文件中,该文件存储在项目级的 .idea/httpRequests/ 目录下。 通过请求历史,您可以快速导航到特定响应并且 再次发出任何请求。 如果从请求历史中再次发出请求,其执行信息和响应输出链接将添加到请求历史文件的顶部。
打开请求历史
点击
位于请求编辑器面板的顶部。
请选择 从主菜单。
将输出重定向到自定义文件或目录
HTTP 客户端 可以将输出重定向到自定义文件或目录。 它支持两种强制和软重定向操作符:
>>运算符总是会创建一个新文件,如果请求的文件名已经存在,则在文件名后添加一个-n后缀。>>!操作符会在文件已存在时重写文件。
管理 Cookie
通过响应收到的 cookies 会自动保存到 http-client.cookies 文件中,位于 .idea/httpRequests/ 目录下。 可以保存的 cookies 数量限制为 300。 一个 cookie 的 名称和 值会自动包含在随后对匹配该 cookie 所指定的 域和 路径的 URL 的每个请求中,前提是尚未到达 到期日期。
如果您希望 Cookie 永不过期,您可以输入 -1 作为 date 参数。 例如:

如果您想在 HTTP 请求中设置自定义 cookies,您可以使用 Cookie 标头。 请输入您的 cookies 列表,格式为用分号分隔的一对 name=value ,例如:
gRPC 请求
HTTP 客户端 支持 gRPC 请求。 要让 HTTP 客户端将您的请求视为 gRPC 请求,请使用 GRPC 关键字开头。
基于 .proto 文件,JetBrains Rider 为 gRPC 提供了智能补全功能:包括所有已知的 gRPC 服务、特定服务器的单向和服务器流式方法,以及请求体中已接受消息的字段。 如果您在项目中没有 .proto 文件,如果服务器支持 gRPC 反射 ,代码补全功能仍然可用,它为 HTTP 客户端提供有关可访问服务的信息。

从 proto 文件生成 gRPC 请求
在 proto 文件中,点击
在HTTP 客户端中生成请求 附近的 RPC 方法。

从 Endpoints 工具窗口生成 gRPC 请求
就像对于 HTTP 请求一样,您也可以使用 端点 工具窗口生成 gRPC 请求。
打开 端点 工具窗口: 。 如果在您的项目中定义了 gRPC 端点,您将会看到它们。
选择一个终结点。 这将在 HTTP 客户端 选项卡中生成一个示例请求。
完成请求并点击 提交请求。 您可能需要将默认地址和端口替换为您自己的值。 对于请求体,请使用基于 proto 文件中的数据结构的代码补全。
在 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 客户端 支持 WebSocket 请求。 要使 HTTP 客户端 将您的请求视为 WebSocket 请求,请从 WEBSOCKET 关键字开始,后跟服务器地址。 请求具有以下结构:
要加快编写 WebSocket 请求,您可以:
点击
文件编辑面板顶部的 .http ,然后选择 WebSocket 请求。
在 .http 文件中,键入
wsr并按 Enter 以应用 WebSocket 实时模板。
发送多条消息
请使用
===分隔符发送多条消息:{ "message": "First message sent on connection" } === // message separator { "message": "Second message" } === { "message": "Third message" }
在服务器响应后发送消息
在消息之前,输入
=== 等待服务器。这将使 HTTP 客户端 在发送消息之前等待服务器响应。 您可以通过重复
=== 等待服务器行等待多个响应。 例如,将在 3 次服务器响应后发送以下消息:=== wait-for-server === wait-for-server === wait-for-server { "message": "This messages is sent after 3 server responses" }
交互发送消息
一旦您建立了连接,您可以直接从 服务 工具窗口与您的服务器进行交互。 您可以发送消息并查看每条新消息的服务器响应。
在 服务 工具窗口中,选择一个已打开的连接。
在窗口的下方,在 发送到 WebSocket 的消息 下方,输入消息内容。
在其右侧,选择消息格式:纯文本、JSON、XML 或 HTML。
按 Ctrl+Enter 发送请求。
在窗口的上部,您会看到服务器响应。

GraphQL
JetBrains Rider 提供在 HTTP 请求体中发送 GraphQL 操作的支持。 您可以通过 HTTP 或 WebSocket 发送它们。
编写包含 GraphQL 查询的 HTTP 请求
在 .http 文件中,输入
GRAPHQL关键字,后跟服务器地址。在请求正文中,编写您的 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 变量来传递一些与查询字符串分开的动态数据。
在 query 部分之后,输入一个 JSON 变量字典:
query ($name: String!, $capital: String!) { country(name: $name, capital: $capital) { name capital } } { "name": "France", "capital": "Paris" }您也可以将 HTTP 客户端环境变量 用作 GraphQL 变量值。 例如,在这个 JSON 中,
"{{Author}}"是一个环境变量;它在运行时的值取决于您在发送请求时选择的环境:{ "author": "{{Author}}" }
配置代理设置
在 设置/首选项 对话框(Ctrl+Alt+S )中,选择 系统设置 下的 外观与行为 ,然后选择 HTTP 代理。
在打开的 HTTP Proxy对话框中,选择 手动代理配置 并指定以下内容:
在 主机名 和 端口号 字段中输入代理主机名和端口号。
要启用授权,请选择 代理身份验证 复选框,并在相应字段中输入用户名和密码。
设置客户端 SSL/TLS 证书
如果 HTTP 服务器要求 SSL/TLS 认证以实现安全通信,您可能需要在发送 HTTPS 请求之前指定客户端证书。 在 HTTP 客户端中,您可以使用 私人环境文件设置客户端证书。
指定证书路径
在一个 .http 文件中,在 运行方式 列表中,选择 将环境添加到Private 文件…。
在打开的 http-client.private.env.json 文件中,将
SSL 配置对象添加到所需的环境中。 在clientCertificate,输入您的客户端证书路径。 如果证书密钥存储在单独的文件中,请在clientCertificateKey中输入其路径。 例如:{ "dev": { "MyVar": "SomeValue", "SSLConfiguration": { "clientCertificate": "cert.pem", "clientCertificateKey": "MyFolder/key.pem" } } }或者,您可以将
clientCertificate和clientCertificateKey描述为对象,这样您可以指定证书格式以及路径。 例如:{ "dev": { "SSLConfiguration": { "clientCertificate": { "path": "file.crt", "format": "PEM" }, "clientCertificateKey": { "path": "file.key", "format": "DER" } } } }
设置证书密码
如果您在生成客户端证书时使用了密码短语,则应将其提供给 HTTP 客户端。
在 http-client.private.env.json 文件中,将
"hasCertificatePassphrase": true添加到SSL 配置对象,例如:{ "dev": { "SSLConfiguration": { "clientCertificate": "file.crt", "hasCertificatePassphrase": true } } }点击
,或在将文本光标置于
hasCertificatePassphrase时,按 Alt+Enter 并选择 设置'Certificate passphrase' 的值。在打开的窗口中,输入您的证书密码短语。

如果您现在不想输入密码,您可以省略第二步。 在这种情况下,JetBrains Rider 会在您执行 HTTPS 请求时要求您输入密码短语。
禁用证书验证
出于开发目的,您可能有一个带有自签名或过期证书的主机。 如果您信任此主机,您可以禁用其证书的验证。
在 http-client.private.env.json 文件中,将
verifyHostCertificate": false添加到SSL 配置对象。 例如:{ "sslTest": { "SSLConfiguration": { "verifyHostCertificate": false } } }
如果您在此环境中运行请求,JetBrains Rider 将不会验证主机证书。