IntelliJ IDEA代码编辑器中的HTTP客户端

创建HTTP请求文件

您可以使用临时文件或HTTP请求类型的物理文件处理HTTP请求

Scratch文件可用于在开发期间测试HTTP请求。临时文件不存储在项目中,因此IntelliJ IDEA可以修改它并添加有关请求的其他信息。从临时文件执行HTTP请求时,响应输出文件的链接将添加到请求下方和请求历史记录文件的顶部。

创建HTTP请求临时文件

  • 按,Ctrl+Shift+Alt+Insert然后选择HTTP请求。

物理文件可用于记录,测试和验证HTTP请求。物理文件存储在项目中,IntelliJ IDEA不会修改它。从物理文件执行HTTP请求时,不会修改此文件。有关已执行请求以及响应输出文件链接的信息将添加到请求历史记录文件的顶部。

创建物理HTTP请求文件

  • 在“ 文件”菜单上,指向“ 新建”,然后单击“ HTTP请求”。

您可以使用Move refactoring(F6)将HTTP请求从划痕移动到物理文件,以及物理文件之间。

移动HTTP请求

  1. 在编辑器中,将插入符号放在要移动的请求上,并执行以下操作之一:
    • 在主菜单上或上下文菜单中,选择Refactor | 移动。
    • 按F6。
  2. 在打开的对话框中,单击

以选择文件或键入要将请求移动到的文件的完整路径。请注意,您可以指定不存在的文件的名称,在这种情况下,将自动创建具有提供的名称的新文件。

撰写HTTP请求

您可以使用以下常规语法直接在创建的HTTP请求文件中键入HTTP请求:

Method Request-URI HTTP-Version Header-field: Header-value Request-Body

IntelliJ IDEA使用编辑器格式的HTTP请求,它提供了一种创建,执行和存储有关HTTP请求的信息的简单方法。要了解其可能性的概述,您可以浏览HTTP请求集合,这是一小部分组合请求。

从HTTP请求集合中打开请求

  1. 单击

编辑器的右上角或选择“ 工具”| HTTP客户端| 在主菜单中打开HTTP请求集合。

  1. 在弹出菜单中,选择要打开的HTTP Requests集合:

要加快撰写HTTP请求的速度,请使用实时模板。例如,gtr扩展为简单的GET请求; mptr扩展为multipart/form-dataPOST请求。

GIF

例子

以下示例更详细地演示了编辑器格式功能中的HTTP请求

  • 您可以省略请求方法,并仅指定GET默认情况下要使用的URI 。注释行可以使用//或启动#// A basic request http://example.com/a/ 在Java上下文中,您可以使用代码完成 (Ctrl+Space)来根据定义的@Path注释指定URI 。@Path对Java代码中的注释的任何更改都将反映在建议列表的内容中。
  • 要标记请求的结尾并在同一文件中撰写另一个请求,请键入###// A basic request http://example.com/a/ ### // Longer request with method GET http://example.com:8080/api/html/get?id=123&value=content 将长请求分成几行可能更方便。请注意,在这种情况下,所有查询字符串行,但第一个必须缩进,例如: // Using line breaks with indent GET http://example.com:8080 /api /html /get ?id=123 &value=content
  • 要使用基本摘要式身份验证访问目标Web服务,您可以Authorization按如下方式生成标头:// Basic authentication GET http://example.com Authorization: Basic username password ### // Digest authentication GET http://example.com Authorization: Digest username password 与其他HTTP请求的元素类似,提供的usernamepassword可以通过环境变量进行参数化。
  • 要指定请求消息正文,请在其前面加一个空行。您可以提供请求正文或从文件中读取它。
    • 如果将Content-Type标题字段值设置为IntelliJ IDEA支持语言之一,则相应的语言片段将自动注入HTTP请求消息正文中。如果Content-Type未指定,则可以手动注入语言片段。有关更多信息,请参阅使用语言注入
    • 在Java上下文中,您可以使用代码完成 (Ctrl+Space)来Accept根据定义的@Produces注释指定头字段值。@Produces对Java代码中的注释的任何更改都将反映在建议列表的内容中。
    • 要从文件中读取请求正文,请键入<符号,然后键入文件的路径。

    // The request body is provided in place POST http://example.com:8080/api/html/post HTTP/1.1 Content-Type: application/json Cookie: key=first-value { "key" : "value", "list": [1, 2, 3] } ### // The request body is read from a file POST http://example.com:8080/api/html/post Content-Type: application/json < ./input.json

  • 您可以使用multipart/form-data内容类型执行HTTP请求。要将文件作为multipart/form-data消息的一部分发送,请filenameContent-Disposition标头中包含该参数。 POST http://example.com/api/upload HTTP/1.1 Content-Type: multipart/form-data; boundary=boundary --boundary Content-Disposition: form-data; name="first"; filename="input.txt" // The 'input.txt' file will be uploaded < ./input.txt --boundary Content-Disposition: form-data; name="second"; filename="input-second.txt" // A temporary 'input-second.txt' file with the 'Text' content will be created and uploaded Text --boundary Content-Disposition: form-data; name="third"; // The 'input.txt' file contents will be sent as plain text. < ./input.txt --boundary--

使用环境变量

在编写HTTP请求时,您可以使用环境变量对其元素进行参数化。例如,您可以使用{{host}}占位符,而不是在请求中明确提供主机名。然后在项目中定义一组包含所需主机定义的环境变量。执行请求时,IntelliJ IDEA将提供已定义环境的选择,在我们的示例中,主机将请求发送到:

查看 请求的结构在浏览器中打开请求时,所选环境将用作默认环境 。

环境变量在env环境文件中定义,必须存储在项目中。

  • 在休息-client.env.json或HTTP-client.env.json是打算要与项目一起分发常规文件。
  • 的其余-client.private.env.json或HTTP的client.private.env.json是私人可能包含敏感信息(密码,令牌,证书等)的文件。默认情况下,这些文件将添加到VCS忽略的文件列表中。私有文件中指定的变量值覆盖常规文件中包含的值。

变量可以包含主机,端口,路径,查询参数或值以及标头值的值。变量的名称只能包含字母,数字,下划线符号(_)或连字符号(-)。

使用响应处理程序脚本

响应处理程序脚本使您可以以编程方式“响应”收到的HTTP响应。这样可以自动处理接收的数据,并根据您指定的条件对其进行验证。响应处理程序脚本作为HTTP请求文件中的请求的一部分提供,并在收到响应后立即执行。要查看响应处理示例,请打开身份验证请求或测试响应 请求集合

您可以在适当的位置或通过引用外部文件将响应处理程序脚本插入到请求中。

要将脚本插入到位,>请将其作为前缀并将其括在{% %}

GET host/api/test > {% // Response Handler Script ... %}

要通过引用外部文件来插入脚本,请在其前面加上>

GET host/api/test > scripts/my-script.js

响应处理程序脚本使用JavaScript编写,编码帮助和文档由捆绑HTTP Response Handler库处理。对于就地脚本,此功能会自动启用。

在JavaScript文件中启用HTTP Response Handler编码帮助

  1. 在编辑器中打开文件。
  2. 在上下文菜单中,选择“ 使用JavaScript库” HTTP响应处理程序。

HTTP Response Handler库公开了两个用于组合响应处理程序脚本的对象:

  • client存储会话元数据,可以在脚本内部进行修改。在client您关闭IntelliJ IDEA之前,状态会一直保留。保存在每个变量client.globalvariable_name 是后续的HTTP请求的访问{{variable_name}}
  • response 保存有关收到的响应的信息:其内容类型,状态,响应正文等。

响应处理程序脚本可以包含测试,允许您将HTTP客户端用作测试框架。要创建测试,请调用该client.test(testName, function)方法。在测试中,您可以通过调用client.assert(condition, message)方法来断言条件,例如:

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

执行HTTP请求

  1. 如果要测试自己的Web服务,请确保已部署并运行。
  2. 请执行以下任何操作:
    • 单击要运行

    的请求旁边的编辑器左侧装订线中的“ 运行”图标。在弹出菜单中,选择“运行<请求名称>”。

    • 将插入符号放在要执行的请求上,按,然后Alt+Enter选择“ 运行<请求名称>意图操作”。

在浏览器中打开请求

您可以在IntelliJ IDEA设置的Web浏览器部分中指定的浏览器中打开HTTP请求。这可以是您的系统默认浏览器,也可以是您选择的浏览器。

  • 请执行以下任何操作:
    • 将插入符号放在请求的第一行,然后选择View | 在主菜单上跳至Source ,或按Ctrl+B或F4。
    • Ctrl+Click(对于Windows和Linux)或⌘+Click(对于macOS)请求行:

查看来自Web服务的响应

当您执行HTTP请求时,IntelliJ IDEA会自动将响应保存到.idea / httpRequests /目录下的单独文件中。您可以查看最近存储的50个响应,并使用请求历史记录导航到相应的文件。如果请求是从暂存文件执行的,则其响应输出的链接也会添加到原始请求之下:

查看收到的回复

  1. 切换到“ 运行工具”窗口,该窗口会在收到响应后立即自动打开。
  2. 默认情况下,服务器响应通过content-type字段以请求标头中指定的格式显示。要将响应转换为另一种格式,请使用“ 以HTML 格式查看”

,“以XML 格式查看”

或“以JSON 格式查看”

按钮。

  1. 作为响应处理程序脚本的一部分执行的测试结果(如果有)将显示在“ 运行”工具窗口的“ 测试”选项卡上。

在编辑器中打开响应文件

  • 将插入符号放在要打开的响应的链接上,然后选择“ 查看”| 在主菜单上跳至Source,或按Ctrl+B或F4。
  • Ctrl+Click(对于Windows和Linux)或⌘+Click(对于macOS)响应行:

比较临时文件中的响应

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

  • 请执行以下任何操作:
    • 将插入符号放在响应文件的链接上。按,Alt+Enter然后选择与<响应名称>意图操作进行比较。
    • 单击

    左侧装订线中的图标,然后从弹出菜单中选择与<响应名称>进行比较:

比较请求历史记录中的响应

从物理文件执行请求时,响应输出的链接将添加到请求历史记录中

  1. 将插入符号放在响应文件的链接上。选择查看| 在主菜单上跳转到Source,或按Ctrl+B或F4在新编辑器选项卡中打开此文件。
  2. 选择查看| 在主菜单上与...比较,或按Ctrl+D。IntelliJ IDEA将提示您从httpRequests文件夹中打开响应文件。
  3. 选择要与当前文件进行比较的响应文件,然后单击“ 打开”。

这两个响应文件将在差异查看器中打开,允许您比较它们的内容:

查看请求历史记录

IntelliJ IDEA自动将最近执行的50个请求保存到http-requests-log.http文件中,该文件存储在.idea / httpRequests /目录下的项目级别。使用请求历史记录,您可以快速导航到特定响应并重新运行任何请求。如果从请求历史记录重新运行请求,则其执行信息和响应输出的链接将添加到请求历史记录文件的顶部。

打开请求历史记录

  • 单击

编辑器的右上角或选择“ 工具”| HTTP客户端| 在主菜单上显示HTTP请求历史记录。

配置代理设置

  1. 在“ 设置/首选项”对话框(Ctrl+Alt+S)中,选择“ 外观和行为”下的“ 系统设置”,然后选择“ HTTP代理”。
  2. 在打开的“ 代理”对话框中,指定以下内容:
    • 在代理主机和代理端口字段中输入代理主机名和端口号。
    • 要启用授权,请选中“ 使用授权”复选框,然后在相应字段中键入用户名和密码。

原文链接:https://www.jetbrains.com/help/idea/http-client-in-product-code-editor.html

原文作者:IntelliJ IDEA

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Ubuntu 16.04上安装phpIPAM

phpIPAM是一个专用的IP地址管理工具,超越低技术选项通过提供自动ping扫描,状态报告,让您可以看到哪些主机已启动,哪些已停机,通过电子邮件发送有关你正在...

2260
来自专栏性能与架构

Linux 非交互式SSH

ssh是linux管理时常用的一个服务,ssh有个特点,属于交互式操作,就是当你执行ssh时,他会要求你手动输入密码 这就给shell脚本带来了麻烦,如果想在...

4597
来自专栏WindCoder

windows下python中pip与easy_install相关

下载地址:https://pypi.python.org/pypi/ez_setup

1111
来自专栏Linux运维学习之路

ansible批量管理软件部署及剧本

服务器版本信息: Centos6.9 [root@db02 ~]# uname -a Linux db02 2.6.32-696.el6.x86_64 #1 S...

9557
来自专栏源码之家

mysql数据库还原出错ERROR:Unknown command ‘\\’解决手记

2075
来自专栏重庆的技术分享区

Windows环境下msysgit下安装gitflow步骤

1703
来自专栏张伟博客

如何使用 Git 和 GitHub 来管理自己的代码

    点击右上角加号箭头,在弹出的菜单中选择 "New repository" 选项进行仓库配置。

1462
来自专栏Django中文社区

django 实现简单的搜索功能

搜索是一个复杂的功能,但对于一些简单的搜索任务,我们可以使用 django model 层提供的一些内置方法来完成。本文将结合 django 模型管理器的 fi...

1.1K5
来自专栏玩转JavaEE

MongoDB副本集搭建

我们之前的案例都是在单个节点上实现的,在生产环境中这种做法是有风险的,如果服务宕机、崩溃或者硬盘坏了都会对公司业务造成损失,因此我们需要数据备份。在MongoD...

3796
来自专栏北京马哥教育

73条日常shell命令汇总,总有一条你需要!

1.检查远程端口是否对bash开放: echo >/dev/tcp/8.8.8.8/53 && echo "open" 2.让进程转入后台: Ctrl + z...

37111

扫码关注云+社区

领取腾讯云代金券