HTTP 客户端 CLI
除了 PyCharm 插件外,HTTP 客户端也可 作为 CLI 工具 使用。 它允许您在终端中运行 HTTP 请求,无需 IDE,或将 HTTP 请求测试纳入 CI 工作流。 HTTP 客户端 CLI 无需您持有 Pro 许可证。
安装 HTTP 客户端 CLI
您可以通过以下方式获取 HTTP 客户端 CLI:
要以 Docker 映像 的形式获取 HTTP 客户端 CLI,请拉取该映像:
docker pull jetbrains/intellij-http-client检查映像中的版本:
docker run --rm -i -t -v $PWD:/workdir jetbrains/intellij-http-client --version要获取 ZIP 压缩包,请 从我们的网站下载或使用 cURL:
curl -f -L -o ijhttp.zip "https://jb.gg/ijhttp/latest"检查已安装的版本:
./ijhttp --version在 macOS 上,您也可以使用 Homebrew 进行安装:
brew install ijhttp检查已安装的版本:
ijhttp --version
运行 HTTP 请求
创建一个 .http 请求文件。 如果您想一次运行所有请求,您的文件可以包含多个 HTTP、WebSocket 和 GraphQL 请求。
运行 HTTP 客户端 CLI:
将文件名传递给
./ijhttp命令,例如:./ijhttp myrequest.http使用
.http文件运行一个容器:docker run --rm -i -t -v $PWD:/workdir jetbrains/intellij-http-client run.http该命令会在宿主机上的当前工作目录 (
$PWD) 与容器中的workdir目录之间创建一个绑定挂载。
命令输出包含已发送请求、测试状态以及 环境变量 的信息。

更改日志级别
默认情况下,HTTP 客户端 CLI 仅输出已发送请求和环境变量的信息。 您可以使用 -L 选项更改日志级别。
使用
-L HEADERS记录请求和响应头信息。或使用
-L VERBOSE记录请求和响应头及正文信息。
将响应保存到文件
在 Docker 中解析 localhost
如果您的服务器在宿主机上运行,而您在 Docker 容器中运行 HTTP 请求,则可能需要将 localhost 解析为宿主机的 localhost。
使用
-D选项,例如:docker run --rm -i -t -v $PWD:/workdir jetbrains/intellij-http-client -D run.http
这样,发往 localhost 的请求将被发送到宿主机的 localhost。
环境变量
与 PyCharm 中的 HTTP 客户端一样,您可以在 HTTP 请求中使用 环境变量。 您使用来自 HTTP 环境文件的变量,或者可以在 CLI 命令中直接传递变量值。
使用公共环境变量
使用
--env-file选项指定变量文件的路径,并使用--env指定环境的名称。 例如:./ijhttp --env-file http-client.env.json --env dev rest-api.http或者,在
-V选项中传递变量值。 如果您想传递多个变量,请重复使用-V选项:ijhttp -V host=localhost:8080 -V planet=tatooine rest-api.http
您可以组合使用这两个选项:
使用私有环境变量
使用
--private-env-file选项指定变量文件的路径,并使用--env指定环境的名称。 例如:./ijhttp --private-env-file http-client.private.env.json --env dev rest-api.http您也可以在
-P选项中传递变量值。 如果您想传递多个变量,请重复使用-P选项:ijhttp -P password=mypassword123 -P user=johndoe rest-api.http
您可以组合使用这两个选项:
测试请求
与 HTTP 客户端插件中一样,您的 .http 文件可以包含一个用 JavaScript ES6 编写的 响应处理脚本。 您可以使用它结合 client.assert 方法测试 HTTP 请求。
使用响应处理脚本
在您的
.http文件中,在请求之后留出一行空行,并将响应处理脚本用> {% ... %}包裹。 例如:GET https://httpbin.org/get > {% client.test("Test status code", function() { client.assert(response.status === 200, "Response status is not 200"); }); %}
您还可以从单独的文件中包含测试。 该文件的路径可以是绝对路径,也可以是相对于您的 .http 文件的相对路径:
以 JUnit XML 格式保存测试报告
HTTP 客户端可以提供 JUnit XML 格式的输出。
将
--report参数添加到ijhttp命令中,例如:./ijhttp test.http --report
HTTP 客户端 CLI 会将报告保存到 报告 目录下的 report.xml 文件中。