📜  使用 httpie 发布 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:06:47.248000             🧑  作者: Mango

使用 httpie 发布 - Shell-Bash

如果你正在寻找一种命令行工具来测试 API 端点,并调试网络请求,那么 HTTPie 可能是你想要的解决方案。这是一个为人类设计的友好的 CLI HTTP 客户端,易于使用,支持 JSON,表单数据和文件上传。

HTTPie 不仅以其简洁明了的命令行接口而闻名,同时还包含许多实用的功能,例如跟踪重定向,设置请求头和 cookie,HTTP 压缩和语法突出显示等。

如何使用

先使用以下命令安装 HTTPie:

$ pip install httpie

HTTPie 安装完成后,就可以开始使用了。下面是一个交互式例子:

$ http -a user:password -b POST https://httpbin.org/post name=John

上述命令执行了如下操作:

  • 使用 HTTP 基本身份验证,用户名为“user”,密码为“password”
  • 向 https://httpbin.org/post 发送 POST 请求
  • 提供名为“name”的表单参数(值为“John”)

如果请求成功,你应该会看到返回的响应数据。

发布 JSON 数据

在添加 -j / --json 选项时,HTTPie 可以将请求体呈现为 JSON。

例如:

$ http POST example.com/person \
    Content-Type:application/json \
    body:='{"firstName": "John", "lastName": "Doe"}'

该命令将在 example.com/person 端点发布 JSON 对象并设置 Content-Type 头为 application/json。

发布文件

使用 --form 选项可以同时发布表单字段和一个或多个文件。

例如:

$ http -f POST example.com/form \
    name=value \
    file1@/path/to/file1.png \
    file2@/path/to/file2.png

即可将文件 file1.png 和 file2.png 附加到 POST 请求中。

发送多个请求

使用 -a 选项可以轻松地进行多项身份验证,但是如何在一条命令中发送多个请求呢?

你可以使用 xargs 将多个 httpie 命令连接在一起。例如,下面的命令将发送两个请求,测试 Google 和 Bing 的响应时间:

$ echo "https://www.google.com https://www.bing.com" | xargs -n 1 http -t HEAD
发布到多个端点

如果你需要发布相同的请求到多个端点,你可以使用 httpie 的数据传输脚本。

以下是一个使用脚本发布到多个端点的示例:

$ cat endpoints.txt
http://localhost:8080/path1/
http://localhost:8080/path2/

$ echo '{"data": "foo"}' | \
  http post http://localhost:8080/path1/ | \
  http POST http://localhost:8080/path2/

上面的示例演示了如何将 JSON 请求体发布到端点列表中的每个端点,获取每个端点的响应。

结论

HTTPie 是一个非常实用的命令行工具,它可以帮助你轻松地测试和调试 API 端点,支持多种数据格式处理和多项功能,比如身份验证和文件上传。

使用上面的示例和命令,你应该能够使用 HTTPie 完成绝大部分需要进行 HTTP 请求调试的任务。