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

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

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

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

此后,PyCharm 会将其识别为有效的 HTTP 方法。 您可以在 IDE 设置(Ctrl+Alt+S )中的 下找到所有自定义 HTTP 方法(并添加新的)。
HTTP/2
从 2024.1 版本开始,PyCharm 在 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 (Prior Knowledge)用于在不使用 HTTP/1.1 Upgrade 的情况下通过 HTTP/2 发送。 如果您确定服务器可以处理 HTTP/2 连接,请使用该选项。

要概览 HTTP 客户端功能,您可以浏览 HTTP 请求集合 ,其中包含一些精选的已编写请求。
从 HTTP 请求集合中打开请求
点击请求的编辑器面板顶部的 示例 快捷链接。
在弹出菜单中,选择您希望打开的 HTTP 请求集合:

转换 cURL 请求
如果您使用 cURL 请求,您可以在 cURL 请求和 HTTP request in Editor 格式之间进行转换。
将 cURL 转换为 HTTP 请求
将 cURL 请求粘贴到 HTTP 请求文件中。 PyCharm 会将其转换为 HTTP 请求格式,并将原始 cURL 请求以注释形式保留,供日后参考。

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

请参考以下示例 cURL 请求:
PyCharm 会将其转换为如下内容:
转换器支持以下 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 客户端,您可以将此类文件导入到 PyCharm,将其转换为相应的 .http 和环境文件。
将 Postman 集合导入到 HTTP 客户端
从 Postman 导出集合。 如果您想在 PyCharm 中使用它们,也可以导出环境文件。
通过以下任一方式将该文件导入到 PyCharm:
如果导出的文件位于您的项目中,右键点击它并选择 将集合转换为 .http 文件。
打开任意 .http 文件,点击工具栏中的
,然后选择 Postman 集合。
按 Ctrl+Shift+A ,开始键入
Import from Postman Collection File,并选择相应的操作。
如果还想导入环境文件,请选择 附加环境 并指定该文件。 它将被转换为 HTTP 客户端环境格式,并且会为指定的 .http 文件选择此环境。
在出现的窗口中,点击 转换。

使用意图操作生成请求
如果您的代码字符串文本或 JSON、YAML、TOML 与 Properties 文件中包含以 http 或 https 开头的 URL,您可以快速生成一个 HTTP 请求。
点击一个 URL,然后按 Alt+Enter。
在打开的上下文菜单中,点击 在HTTP 客户端中生成请求。

这将在 generated-requests.http 临时文件中创建一个指向指定 URL 的新的 GET HTTP 请求。
使用响应处理脚本和预请求脚本
使用响应处理脚本,您可以以编程方式对接收到的 HTTP 响应作出反应。 通过这些脚本,您可以自动处理接收到的数据,并根据您指定的条件对其进行验证。 响应处理脚本作为请求的一部分包含在 HTTP 请求文件中,并会在接收到响应后立即执行。 要查看响应处理示例,请打开 带授权的请求 或 带有测试和脚本的请求 的 请求集合。
使用预请求脚本,您可以设置 variables used in HTTP requests。
插入响应处理脚本
您可以将响应处理脚本以内联方式插入到请求中,或通过引用外部文件插入。
要以内联方式插入脚本,请在其前加上
>,并将其包裹在{% %}中: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语句,格式如下: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 Pre-Request and Response Handler 库提供。 对于内联脚本,此功能会自动启用。 对于外部脚本,您需要手动启用该功能。
为响应处理脚本和预请求脚本启用 JavaScript 代码辅助
按 Ctrl+Shift+A (查找操作)。
键入 使用 JavaScript 库 ,点击相应的操作,并在打开的上下文菜单中选择 HTTP 预请求和响应处理程序。
HTTP Response Handler 库提供了两个对象,可用于编写响应处理脚本:
client对象存储会话元数据,您可以在脚本中对其进行修改。client状态会一直保留,直到您关闭 PyCharm 为止。 在client.global中以variable_name形式保存的每个变量,都可作为{{variable_name}}供后续 HTTP 请求访问。response保存有关已接收响应的信息:其内容类型、状态、响应正文等。
要在编辑器中打开 HTTP Response Handler 库,请将插入符号置于该库对象上并按 Ctrl+B。
响应处理脚本可以包含测试,使您能够将 HTTP 客户端用作测试框架。 要创建测试,请调用 client.test(testName, function) 方法。 在测试中,您可以通过调用 client.assert(condition, message) 方法来断言条件,例如:
使用结构工具窗口浏览 .http 文件
如果您的 .http 文件中包含多个请求, 结构 工具窗口可帮助您快速预览并浏览该文件。 该工具窗口还会显示请求的各个部分,例如标头、请求正文、预请求脚本和响应处理脚本。
打开 结构 工具窗口: 。
或者,按 Alt+7。
在 结构 工具窗口中,点击某个 HTTP 方法或请求名称,或请求的任意部分。

您还可以在此处通过右键点击并选择 来发送请求。
执行 HTTP 请求
执行单个请求
如果您要测试自己的 Web 服务,请确保其已部署并正在运行。
如果您已定义 environments ,请在请求编辑器面板顶部的 使用以下方式运行 列表中选择一个环境。
在装订区域,点击请求旁边的
。
按顺序执行多个请求
您可以一次性运行 .http 文件中的所有请求。 这对于复杂场景很有用,例如从服务器请求特定数据,将其保存为 client.global 变量,并发送包含该数据的后续请求。
打开一个 .http 文件。
在编辑器面板顶部,点击
(运行文件中的所有请求)。
执行请求时,PyCharm 会为其自动创建一个专用的临时 HTTP Request run/debug configuration。 如有必要,您可以将其 保存为永久运行/调试配置。
在浏览器中打开请求
您可以在 设置 对话框的 Web 浏览器和预览 页面(Ctrl+Alt+S )中指定的浏览器中打开 HTTP 请求。
按 Alt+Enter 并选择 在Web 浏览器中打开 意图操作。
使用 HTTP 请求运行/调试配置
当您 从编辑器执行 HTTP 请求时,PyCharm 会根据请求参数自动创建一个临时运行/调试配置。 临时运行/调试配置与永久运行/调试配置的工作方式相同。 您可以使用 Run/Debug Configuration 对话框更改其设置,并可选择将其保存为永久配置。
修改 HTTP 请求运行/调试配置
执行以下任一操作:
在编辑器中,右键点击某个请求,并在上下文菜单中选择 修改运行配置...。
或者,在主菜单中转到 ,并在 HTTP 请求 列表中选择所需的运行/调试配置。
在需要的地方更改配置参数:
在 环境 列表中,选择一个 environment ,以定义请求中使用的环境变量集合。
在 文件 字段中,提供 HTTP request file 的路径。 您可以手动键入路径,并在键入时使用路径补全 Ctrl+Space ,或者点击
并在打开的对话框中选择所需文件夹。
如果您的请求文件包含多个请求,请在 请求(R) 列表中选择要执行的请求名称。
保存临时 HTTP 请求运行/调试配置
执行以下任一操作:
在 运行/调试配置 选择器中,选择 。
在 运行/调试配置 对话框中,选择该配置并点击
。
使用运行/调试配置执行请求
执行以下任一操作:
在 运行/调试配置 选择器中,选择所需的运行配置。 然后在主工具栏上点击
,或按 Shift+F10。
按 Alt+Shift+F10 ,在列表中选择所需的运行配置,然后按 Enter。
从其他 .http 文件导入 HTTP 请求
PyCharm 让您可以从其他 .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 请求时,PyCharm 会将响应自动保存到 .idea/httpRequests/ 目录下的一个单独文件中。 您可以使用 请求历史 查看最近保存的 50 个响应,并导航到相应的文件。 如果请求是从临时文件执行的,其响应输出的链接也会添加在原始请求下方:

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

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

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

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

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

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

重定向 事件流到文件,目前不受支持。
在编辑器中打开响应文件
将插入符号置于您要打开的响应的链接处。
执行以下任一操作:
在主菜单中,转到 。
按 Ctrl+B 或 F4。
在 服务 工具窗口或编辑器(用于临时文件)中, Ctrl+Click 响应行中的链接。
使用 JSONPath 从 JSON 响应中提取数据
HTTP 客户端支持 JSONPath 查询,使您能够解析并从接收到的 JSON 文档中提取数据。 为此,请在您的 响应处理脚本 中使用以下函数:
使用 jsonPath 实时模板,快速插入此函数。
在请求之后,在响应处理脚本部分开始键入
> jsonPath。按 Enter 展开实时模板并完成 JSONPath 表达式。
例如,此表达式将检索并打印
title字段在slides数组中第一个元素的值,该数组是slideshow对象的一部分: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 并选择 与 <响应名称> 比较 意图操作。
在装订区域,点击
,并从列表中选择 与 <响应名称> 比较:

在请求历史中比较响应
当从物理文件执行请求时,响应输出的链接会添加到 请求历史。
将插入符号置于响应文件的链接处。 在主菜单中,转到 ,或按 Ctrl+B 或 F4 以在新的编辑器选项卡中打开该文件。
在主菜单中,转到 ,或按 Ctrl+D。 PyCharm 会提示您从 httpRequests 文件夹中打开一个响应文件。
选择您希望与当前文件进行比较的响应文件,然后点击 打开。
这两个响应文件将在 Diff Viewer 中打开,便于您比较其内容:

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

如果您想在 HTTP 请求中设置自定义 Cookie,您可以使用 Cookie 请求头。 将您的 Cookie 输入为由分号分隔的 name=value 对列表,例如:
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" }
在服务器响应后发送消息
在消息前输入
=== wait-for-server。这将使 HTTP 客户端在发送该消息之前等待服务器响应。 您可以通过重复
=== 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
PyCharm 支持在 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 变量,如果您希望将一些动态数据与查询字符串分开传递。
在查询部分之后,输入一个 JSON 变量字典:
query ($name: String!, $capital: String!) { country(name: $name, capital: $capital) { name capital } } { "name": "France", "capital": "Paris" }您也可以使用 HTTP Client environment variables 作为 GraphQL 变量值。 例如,在这个 JSON 中,
"{{Author}}"是一个环境变量;它在运行时的值取决于您在发送请求时所选择的环境:{ "author": "{{Author}}" }
配置代理设置
在 设置 对话框(Ctrl+Alt+S )中,在 外观 & 行为 下选择 系统设置 ,然后选择 HTTP 代理。
在 HTTP Proxy 对话框中,选择 手动代理配置 并指定以下内容:
在 主机名 和 端口号 字段中输入代理主机名和端口号。
要启用授权,请选中 代理身份验证 复选框,并在相应字段中键入用户名和密码。
设置客户端 SSL/TLS 证书
如果 HTTP 服务器为安全通信要求 SSL/TLS 身份验证,您可能需要在发送 HTTPS 请求之前指定客户端证书。 在 HTTP 客户端中,您可以使用 private environment file 设置客户端证书。
指定证书路径
在 .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 客户端。
在 http-client.private.env.json 文件中,将
"hasCertificatePassphrase": true添加到SSLConfiguration对象中,例如:{ "dev": { "SSLConfiguration": { "clientCertificate": "file.crt", "hasCertificatePassphrase": true } } }在装订区域,点击
,或者将插入符号置于
hasCertificatePassphrase处,按 Alt+Enter 并选择 设置'Certificate passphrase' 的值。在打开的窗口中,输入您的证书密码短语。

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