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

在需要编写并运行 HTTP 请求时,有两个主要使用场景:
当您正在开发 RESTful Web 服务,并希望确保其按预期工作、能够符合规范进行访问并正确响应。
当您正在开发一个调用 RESTful Web 服务的应用程序。 在这种情况下,在开始开发之前了解该服务的访问方式及所需输入数据会很有帮助。 在开发过程中,您也可以从应用程序外部调用此 Web 服务。 这样可以在应用程序产生意外输出时帮助定位错误,即使您的代码未检测到逻辑错误,而您怀疑瓶颈出在与 Web 服务的交互上。
HTTP 请求保存在 .http 和 .rest 文件中,并以 图标标识。
对 HTTP 文件的支持包括以下功能:
如有必要,在开始之前,请在 HTTP 代理 页的 设置 对话框中(Ctrl+Alt+S )配置 Proxy 设置。
创建 HTTP 请求文件
您可以在草稿文件或 HTTP 请求 类型的物理文件中处理 HTTP 请求。 每个文件可以包含多个请求,且您可以根据需要创建任意数量的文件。
临时文件可用于在开发过程中测试 HTTP 请求。 临时文件不会存储在项目中,因此 GoLand 可以修改它们并添加有关请求的附加信息。 从临时文件执行 HTTP 请求时,指向响应输出文件的链接会添加在请求下方及 请求历史记录文件顶部。
创建 HTTP 请求临时文件
按下 Ctrl+Alt+Shift+Insert 并选择 HTTP 请求。
物理文件可用于记录、测试和验证 HTTP 请求。 物理文件存储在您的项目中,GoLand 不会修改它们。 从物理文件执行 HTTP 请求时,该文件不会被修改。 有关已执行请求的信息及指向响应输出文件的链接将添加到 请求历史记录文件顶部。
创建实体 HTTP 请求文件
在 文件 菜单中,指向 新建 ,然后点击 HTTP 请求。
移动 HTTP 请求
您可以使用 移动重构 F6 将 HTTP 请求从临时文件移动到物理文件,也可在物理文件之间移动。
在编辑器中,将插入符放在要移动的请求上,然后执行以下操作之一:
在主菜单或上下文菜单中,选择 。
按下 Alt+Enter 并选择 移动HTTP 请求 意图操作。
按 F6。
在打开的 移动HTTP 请求 对话框中,执行以下操作:
在 路径 字段中,从列表中选择现有的 .http 文件之一,或点击
以定位该文件。
您还可以手动输入文件的完整路径。 如果指定的文件名不存在,将自动创建一个具有该名称的新文件。
在 请求 列表中,选中要移动的请求旁边的复选框。
编写 HTTP 请求
GoLand 使用 HTTP request in Editor 格式,该格式提供了一种创建、执行并存储 HTTP 请求信息的简便方法。 您可以使用以下常规语法直接在 created HTTP request files 中输入请求。
在 ### 分隔符之后,您可以输入以 # 或 // 开头的注释。
为加快撰写 HTTP 请求的速度,您可以:
点击 。 如果编辑器中打开了请求文件,则会将请求模板添加到该文件中。 否则,将创建一个新的 .http 临时文件。
点击请求编辑器面板顶部的
。 在弹出菜单中,选择要添加的请求类型。

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

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

GoLand 现在会将其识别为有效的 HTTP 方法。 您可以在 IDE 设置(Ctrl+Alt+S )的 部分查找所有自定义 HTTP 方法并添加新方法。
HTTP/2
从 2024.1 版本开始,GoLand 支持在 HTTP 请求中使用 HTTP/2。 您可以在 URL 部分之后指定 HTTP 版本,例如:
如果未指定版本,HTTP Client 会尝试在安全连接中使用 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/1.1 升级的情况下发送 HTTP/2。 如果您确定服务器支持 HTTP/2 连接,请使用此选项。

若要了解 HTTP Client 功能的概况,建议探索 HTTP 请求集合 ,其中包含已编写请求的精选集合。
从 HTTP 请求集合中打开请求
点击请求编辑器面板顶部的 示例 快捷链接。
在弹出菜单中,选择要打开的 HTTP 请求集合:

转换 cURL 请求
如果您使用的是 cURL 请求,可以在 cURL 请求与 HTTP request in Editor 格式之间进行转换。
将 cURL 转换为 HTTP 请求
将 cURL 请求粘贴到 HTTP 请求文件中。 GoLand 会将其转换为 HTTP 请求格式,并将原始 cURL 请求注释掉以供后续参考。

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

请参考以下 cURL 请求示例:
GoLand 会将其转换为如下内容:
转换器支持以下 cURL 选项:
选项 | 说明 |
|---|---|
要使用的请求方法。 | |
要包含在请求中的请求头。 | |
与请求一起提供的用户凭据,以及要使用的授权方法。 | |
在 POST 请求中发送的数据。 | |
要在 POST 请求中发送的 multipart/form-data 消息。 | |
要获取的 URL(主要在配置文件中指定 URL 时使用)。 | |
定义是否在输出中包含 HTTP 响应头。 | |
启用详细操作模式。 | |
如请求的页面已移动到其他位置,则启用重新发送请求的功能。 |
将 HTTP 请求转换为 cURL
将插入符放在要转换为 cURL 格式的 HTTP 请求上。
按 Alt+Enter 并选择 转换为cURL 并复制到剪贴板。
或者,点击 HTTP 请求编辑器面板顶部的 转换(C) 快捷链接,并选择 将插入符号处的 HTTP 请求转换为 cURL 并复制。
系统将基于该 HTTP 请求生成一个 cURL 请求,并将其复制到剪贴板。
导入 Postman 集合与环境
Postman collection 是一种将相关 HTTP 请求分组的方法。 在 Postman 中,您可以将 collection 和变量导出为 JSON 格式。 使用 HTTP Client,您可以将此类文件导入到 GoLand,以将其转换为相应的 .http 和环境文件。
导入 Postman 集合到 HTTP 客户端
从 Postman 导出 collection。 如果希望在 GoLand 中使用环境文件,也可以导出它们。
将文件以以下任一方式导入到 GoLand:
如果导出的文件位于项目中,请右键点击该文件并选择 转换集合为 .http 文件。
打开任意 .http 文件,点击工具栏中的
,然后选择 Postman 集合。
按下 Ctrl+Shift+A ,开始输入
从 Postman 集合文件导入,然后选择相应的操作。
如果还需要导入环境文件,请选择 附加环境 并指定文件。 它将被转换为 HTTP Client 环境格式,并且该环境会被选为指定的 .http 文件所使用的环境。
在出现的窗口中,点击 转换。

使用上下文操作生成请求
如果在代码字符串字面量或 JSON、YAML、TOML 和 Properties 文件中有以 http 或 https 开头的 URL,您可以快速生成 HTTP 请求。
点击 URL 并按下 Alt+Enter。
在打开的上下文菜单中,点击 在HTTP 客户端中生成请求。

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

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

您也可以通过右键点击并选择 来进行发送请求。
执行 HTTP 请求
执行单个请求
如果您要测试自己的 Web 服务,请确保该服务已部署并正在运行。
如果已定义 环境 ,请在请求编辑器面板顶部的 运行方式 列表中选择一个环境。
在边栏中,点击紧邻请求的
。
依次执行多个请求
您可以一次性运行 .http 文件中的所有请求。 这对于复杂场景非常有用,例如从服务器请求特定数据,将其保存为 client.global 变量,并发送包含该数据的后续请求。
打开一个 .http 文件。
在编辑器面板顶部,点击
(运行文件中的所有请求)。
当执行请求时,GoLand 会自动为其创建一个专用的临时 HTTP Request 运行/调试配置。 如有需要,您可以 将其另存为永久运行/调试配置。
在浏览器中打开请求
您可以在 Web 浏览器与预览 页的 设置 对话框中指定的浏览器中打开 HTTP 请求(Ctrl+Alt+S)。
按 Alt+Enter 并选择 在Web 浏览器中打开 意图操作。
使用 HTTP 请求运行/调试配置
当 从编辑器执行 HTTP 请求 时,GoLand 会自动创建一个包含请求参数的临时运行/调试配置。 临时运行/调试配置的工作方式与永久运行/调试配置相同。 您可以使用 运行/调试配置 对话框更改其设置,并可选择将其保存为永久配置。
修改 HTTP 请求运行/调试配置
保存临时 HTTP 请求运行/调试配置
执行以下任一操作:
在 运行/调试配置 选择器中,选择 。
在 运行/调试配置 对话框中,选择配置并单击
。
使用运行/调试配置执行请求
执行以下任一操作:
在 运行/调试配置 选择器中,选择所需的运行配置。 然后单击主工具栏中的
,或按下 Shift+F10。
按 Alt+Shift+F10 ,从列表中选择所需的运行配置,然后按 Enter。
从其他 .http 文件中导入 HTTP 请求
GoLand 允许您从其他 .http 文件导入 HTTP 请求。 您可以:
单击 示例 并选择 包含请求 ,以获取此功能在 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 请求时,GoLand 会自动将响应保存到 .idea/httpRequests/ 目录下的单独文件中。 您可以使用 请求历史记录 查看最近存储的 50 个响应并导航至相应文件。 如果请求是从临时文件执行的,其响应输出的链接也会添加在原始请求下方:

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

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

在 服务 工具窗口中预览 PDF 文件。 如需禁用在 服务 工具窗口中显示 PDF 预览,请单击 并取消选中 启用 PDF 行内预览 选项。

如果响应是 HTML 文件,您可以单击 显示预览 ,使用基于 JCEF 的浏览器在编辑器选项卡中预览它。

如果您有 响应处理脚本 ,在此脚本中执行的测试结果将显示在 测试 选项卡中的 服务 工具窗口里。 您可以单击每个测试,快速跳转到相应响应处理脚本中的测试源码。

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

当前不支持将 事件流重定向到文件。
在编辑器中打开响应文件
将插入符号放在要打开的响应链接上。
请执行以下任一操作:
在主菜单中,转到 。
按 Ctrl+B 或 F4。
在 服务 工具窗口或编辑器中(对于临时文件), Ctrl+Click 响应行中的链接。
使用 JSONPath 从 JSON 响应中提取数据
HTTP Client 支持 JSONPath 查询功能,使您能够解析并提取接收到的 JSON 文档中的数据。 为此,请在 响应处理脚本中使用以下函数:
使用 jsonPath 代码模板可以快速插入此函数。
请求之后,在响应处理脚本部分开始输入
> jsonPath。按 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 文档中的数据。
在 响应处理脚本中使用以下函数:
xpath(XMLToParse, XPathExpression)在
XMLToParse中输入要解析的 XML 内容(例如response.body),并在XPathExpression中输入 XPath 表达式。
例如:
在临时文件中比较响应
从临时文件执行请求时,响应输出文件的链接将添加在原始请求下方。
请执行以下任一操作:
将插入符号放在响应文件的链接上。 按 Alt+Enter 并选择 与 <response name> 比较 意图操作。
单击页边空白处的
,然后从列表中选择 与 <response name> 比较:

在请求历史记录中比较响应
从物理文件执行请求时,响应输出链接将添加到 请求历史中。
将插入符号放在响应文件的链接上。 在主菜单中进入 ,或按 Ctrl+B 或 F4 在新的编辑器标签页中打开该文件。
在主菜单中进入 ,或按 Ctrl+D。 GoLand 会提示您从 httpRequests 文件夹中打开响应文件。
选择要与当前文件进行比较的响应文件,然后单击 打开。
两个响应文件将在 差异查看器 中打开,以便比较它们的内容:

查看请求历史记录
GoLand 会自动将最近执行的 50 个请求保存到 http-requests-log.http 文件中,该文件位于项目层级下的 .idea/httpRequests/ 目录中。 借助请求历史,您可以快速跳转到特定响应,以及 再次发出请求。 如果从请求历史中再次发出请求,其执行信息及响应输出的链接会添加到请求历史文件的顶部。
打开请求历史记录
单击请求编辑器面板顶部的
。
在主菜单中选择 。
将输出重定向到自定义文件或目录
HTTP Client 可将输出重定向到自定义文件或目录。 它支持两个强制与非强制重定向运算符:
>>运算符始终创建新文件,如果目标文件名已存在,则添加-n后缀。>>!运算符在文件已存在时会覆盖该文件。
管理 cookie
通过响应接收到的 cookie 会自动保存到 http-client.cookies 文件中,该文件位于 .idea/httpRequests/ 目录下。 最多可保存的 cookie 数量限制为 300 个。 只要尚未达到 expiry date ,则每次对与该 cookie 指定的 domain 和 path 匹配的 URL 所发出的请求中,都会自动包含该 cookie 的 name 和 value。
如果希望 cookie 永不过期,可以将 -1 输入为 date 参数。 例如:

如果希望在 HTTP 请求中设置自定义 cookie,可以使用 Cookie 标头。 将您的 cookie 以由分号分隔的 name=value 键值对列表形式输入,例如:
gRPC 请求
HTTP Client 支持 gRPC 请求。 要使 HTTP Client 将请求视为 gRPC 请求,请以 GRPC 关键字开头。
基于 .proto 文件,GoLand 提供 gRPC 的代码补全功能:包括所有已知的 gRPC 服务、特定服务器的 unary 和 server-streaming 方法,以及请求正文中已接受的消息字段。 如果项目中没有 .proto 文件,但服务器支持 gRPC reflection ,则仍然可以启用代码补全功能,该功能能为 HTTP 客户端提供可访问服务的信息。

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

从 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
从 PROTO 文件导航到 Go 代码
您可以从 Go 代码导航并访问消息、服务和方法的声明,也可以从 PROTO 文件导航至它们在 Go 中的实现。
点击消息、服务或方法声明或其实现旁的 导航到实现 图标。
WebSocket 请求
HTTP Client 支持 WebSocket 请求。 要使 HTTP Client 将您的请求视为 WebSocket 请求,请以 WEBSOCKET 关键字开头,并跟随服务器地址。 请求结构如下:
为加快编写 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" }
交互式发送消息
启动连接后,您可以直接在 服务 工具窗口中与服务器交互。 您可以发送消息并查看服务器对每条新消息的响应。
在 服务 工具窗口中,选择一个已打开的连接。
在窗口下方的 要发送到 WebSocket 的消息 部分中输入消息内容。
在其右侧选择消息格式:纯文本、JSON、XML 或 HTML。
按 Ctrl+Enter 发送请求。
在窗口顶部,您将看到服务器响应。

GraphQL
GoLand 支持在 HTTP 请求正文中发送 GraphQL 操作。 可以通过 HTTP 或 WebSocket 发送这些操作。
使用 GraphQL 查询构造 HTTP 请求
在 .http 文件中,输入
GRAPHQL关键字,并紧跟服务器地址。在请求正文中编写您的 GraphQL 操作(query、mutation 或 subscription),例如:
### 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}}" }
配置代理设置
在 设置 对话框(Ctrl+Alt+S )中,在 外观与行为 下选择 系统设置 ,然后选择 HTTP 代理。
在打开的 HTTP Proxy 对话框中,选择 手动代理配置 ,然后指定以下内容:
在 主机名 和 端口号 字段中输入代理主机名和端口号。
要启用身份验证,请选中 代理身份验证 复选框,并在相应的字段中输入用户名和密码。
配置客户端 SSL/TLS 证书
如果 HTTP 服务器需要 SSL/TLS 身份验证以实现安全通信,您可能需要在发送 HTTPS 请求之前指定客户端证书。 在 HTTP Client 中,您可以通过 私有环境文件 配置客户端证书。
指定证书路径
在 .http 文件中,在 运行方式 列表中选择 将环境添加到Private 文件…。
在打开的 http-client.private.env.json 文件中,将
SSLConfiguration对象添加到所需环境中。 在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 Client。
在 http-client.private.env.json 文件中,将
"hasCertificatePassphrase": true添加到SSLConfiguration对象中,例如:{ "dev": { "SSLConfiguration": { "clientCertificate": "file.crt", "hasCertificatePassphrase": true } } }单击侧边栏中的
,或将插入符号放在
hasCertificatePassphrase处时按 Alt+Enter 并选择 设置'Certificate passphrase' 的值。在打开的窗口中,输入证书的密码短语。

如果暂时不想输入密码短语,您可以省略第二步。 在这种情况下,GoLand 会在您执行 HTTPS 请求时提示输入密码短语。
禁用证书验证
在进行开发时,您可能会使用带有自签名或已过期证书的主机。 如果您信任该主机,可以禁用其证书的验证。
在 http-client.private.env.json 文件中,将
verifyHostCertificate": false添加到SSLConfiguration对象中。 例如:{ "sslTest": { "SSLConfiguration": { "verifyHostCertificate": false } } }
如果您使用该环境运行请求,GoLand 将不会验证主机证书。