HTTP客户端
最后修改时间:2023 年 11 月 9 日使用HTTP 客户端插件,您可以直接在 PyCharm代码编辑器中创建、编辑和执行 HTTP 请求 。

当您需要编写和运行 HTTP 请求时,有两个主要用例:
当您正在开发 RESTful Web 服务并希望确保其按预期工作、可按照规范进行访问并正确响应时。
当您正在开发解决 RESTful Web 服务的应用程序时。在这种情况下,在开始开发之前调查对服务的访问和所需的输入数据会很有帮助。在开发过程中,您还可以从应用程序外部调用此 Web 服务。当您的应用程序导致意外输出,而代码中未检测到逻辑错误,并且您怀疑瓶颈是与 Web 服务的交互时,这可能有助于定位错误。
HTTP 请求存储在.http和.rest文件中,并用图标进行标记。
对 HTTP 文件的支持包括以下功能:
通过OpenAPI定义的主机、方法类型、标头字段和端点的代码完成
请求、其部分和响应处理程序脚本的代码折叠
根据您的HTTP 请求代码样式重新格式化请求。
请求标头字段和文档标签的内联文档
查看HTTP 请求的结构
请求消息正文中Web 语言的语言注入
如有必要,在开始之前,请在“设置”对话框 ( ) 的HTTP 代理页面上配置代理设置。CtrlAlt0S
创建HTTP请求文件
您可以从草稿文件或 HTTP 请求类型的物理文件处理HTTP 请求。每个文件可以包含多个请求,您可以根据需要创建任意多个文件。
临时文件可用于在开发过程中测试 HTTP 请求。临时文件不存储在项目内,因此 PyCharm 可以修改它们并添加有关请求的其他信息。当从临时文件执行 HTTP 请求时,响应输出文件的链接将添加到请求下方和请求历史文件的顶部。
创建 HTTP 请求临时文件
按并选择HTTP 请求。CtrlAltShiftInsert
物理文件可用于记录、测试和验证 HTTP 请求。物理文件存储在您的项目内部,PyCharm 不会修改它们。当从物理文件执行 HTTP 请求时,该文件不会被修改。有关已执行请求的信息以及指向响应输出文件的链接将添加到请求历史记录文件的顶部。
创建物理HTTP请求文件
在“文件”菜单中,指向“新建”,然后单击“HTTP 请求”。
移动 HTTP 请求
您可以使用Move重构将 HTTP 请求从头开始移动到物理文件,以及在物理文件之间移动。F6
在编辑器中,将插入符号放在要移动的请求处,然后执行以下操作之一:
从主菜单或上下文菜单中,选择“重构”|“重构”。移动。
按并选择“移动 HTTP 请求”意图操作。AltEnter
按。F6
在打开的“移动 HTTP 请求”对话框中,执行以下操作:
在“路径”字段中,从列表中选择现有.http文件之一,或单击
以找到该文件。
您还可以手动键入文件的完整路径。如果指定不存在的文件的名称,将自动创建具有所提供名称的新文件。
在请求列表中,选中要移动的请求旁边的复选框。
编写 HTTP 请求
PyCharm 使用编辑器格式的 HTTP 请求,它提供了一种简单的方法来创建、执行和存储有关 HTTP 请求的信息。您可以使用以下通用语法直接在创建的 HTTP 请求文件中键入它们:
###
Method Request-URI HTTP-Version
Header-field: Header-value
Request-Body在###分隔符之后,您可以输入前面带有#或 的任何注释//。
提示
要在运行/调试配置、 Search Everywhere和Run Anything中快速找到您的请求,您可以为其指定名称。
笔记
您可以使用编辑器 | 配色方案| HTTP 请求设置可自定义颜色和样式以突出显示请求语法(名称、注释、参数、标头等)。
要加快撰写 HTTP 请求的速度,您可以:
单击工具 | HTTP 客户端 | 在 HTTP 客户端中创建请求。如果在编辑器中打开请求文件,则会将请求模板添加到打开的文件中。否则,这将创建一个新的.http临时文件。
单击
请求编辑器面板顶部的 。在弹出菜单中,选择要添加的请求类型。

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

要概述 HTTP 客户端的可能性,您可以浏览HTTP 请求集合,它是一些组合请求的选择。
从 HTTP 请求集合中打开请求
单击请求编辑器面板顶部的示例快捷方式链接。
在弹出菜单中,选择您要打开的 HTTP 请求集合:

笔记
请参阅探索 HTTP 请求语法以获取语法和功能概述,并参阅编辑器规范中的 HTTP 请求以获取完整的格式描述。
转换 cURL 请求
如果您正在使用cURL请求,则可以在 cURL 请求和编辑器格式的 HTTP 请求之间进行转换。
将 cURL 转换为 HTTP 请求
将 cURL 请求粘贴到 HTTP 请求文件中。PyCharm 会将其转换为 HTTP 请求格式,并将原始 cURL 请求注释掉以供以后参考。

或者,单击
HTTP 请求编辑器面板顶部的 并选择Convert cURL to HTTP Request。
在“将 cURL 转换为 HTTP 请求”对话框中,键入或粘贴要转换的 cURL 请求。

考虑以下示例 cURL 请求:
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'PyCharm 会将其转换为以下内容:
# 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 选项:
将 HTTP 请求转换为 cURL
将插入符号放在要转换为 cURL 格式的 HTTP 请求处。
按并选择转换为 cURL 并复制到剪贴板。AltEnter
或者,您可以单击HTTP 请求编辑器面板顶部的“转换”快捷方式链接,然后选择“将插入符下的 HTTP 请求转换为 cURL 并复制”。
这将根据 HTTP 请求生成 cURL 请求并将其复制到剪贴板。
导入 Postman 集合和环境
Postman 集合是一种将相关 HTTP 请求分组在一起的方法。在 Postman 中,您可以导出 JSON 格式的集合和变量。使用 HTTP 客户端,您可以将此类文件导入 PyCharm,以将它们转换为相应的.http和环境文件。
将 Postman 集合导入到 HTTP 客户端
从 Postman 导出集合。如果您想在 PyCharm 中使用环境文件,也可以导出它们。
通过以下方式之一将文件导入到 PyCharm:
如果导出的文件位于您的项目中,请右键单击它并选择“将集合转换为 .http 文件”。
打开任意.http文件,单击
工具栏中的 ,然后选择Postman Collection。
按,开始输入,然后选择相应的操作。CtrlShift0A
Import from Postman Collection File
如果您还想导入环境文件,请选择附加环境并指定文件。它将转换为 HTTP 客户端环境格式,并且将为指定的.http文件选择该环境。
在出现的窗口中,单击“转换”。

使用上下文操作生成请求
如果您的 URL 以代码字符串文字或在 JSON、YAML、TOML 和 Properties 文件中开头,则可以快速生成 HTTPhttp请求https。
单击 URL 并按。AltEnter
在打开的上下文菜单中,单击“在 HTTP 客户端中生成请求”。
这将创建一个新的 GET HTTP 请求,指向generated-requests.http 临时文件中的指定 URL 。

使用响应处理程序和预请求脚本
使用响应处理程序脚本,您可以以编程方式对收到的 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 导入功能来访问本地 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