HTTPie 是一个用户友好的命令行 HTTP 客户端,它提供了一种简单、快速的方式来发送 HTTP 请求。 它以其易用性、清晰的语法和人性化的输出格式而受到许多开发者的喜爱。 HTTPie 支持各种 HTTP 方法,包括 GET、POST、PUT、DELETE 等,并且能够处理 JSON、表单数据等请求体
curl -X POST -H "Content-Type: application/json" -d "{\"Username\":\"admin\",\"Password\":\"admin\"}" http://127.0.0.1:5556/api/users/admin/init
http POST 127.0.0.1:5556/api/users/admin/init Username="admin" Password="admin"
如果您使用 JSON 格式的数据, HTTPie 默认会发送一个Content-Type: application/json
头,在curl
中,您需要显式地添加这个头,除非您使用-G
参数或请求体中包含 URL 参数
如果 API 接受表单数据而不是 JSON,可以使用 --data
或 -d
参数并使用
curl -X POST -d 'Username=admin&Password=df' http://127.0.0.1:5555/api/users/admin/init
使用 -d
参数时,我们没有设置 Content-Type: application/x-www-form-urlencoded
头,因为 curl
默认会添加这个头
以下是一些 HTTPie 的基本用法示例:
- GET 请求:
http GET example.org
- POST 请求 JSON 数据:
http POST example.org/people name=John age=30
- POST 请求表单数据:
http --form POST example.org/upload file@localfile.txt comment='My text file'
- PUT 请求:
http PUT example.org/todos/1 id=1 status=done
- DELETE 请求:
http DELETE example.org/todos/1
- 使用自定义 HTTP 头:
http GET example.org X-My-Header:123
- 下载文件:
http --download GET example.org/file.zip
- 显示请求和响应的详细信息:
http -v GET example.org
- 使用 JSON 格式发送数据:
http POST example.org/submit json
- 使用会话存储重复使用的请求参数:
http --session=logged-in POST example.org/login username=john password=secret
http --session=logged-in GET example.org/protected - 持久化会话:
http --session=logged-in -持久化会话参数 POST example.org/login username=john password=secret
HTTPie 还支持许多其他特性,如:
- SSL/TLS 支持:可以很容易地发送 HTTPS 请求。
- 认证:支持基本认证、摘要认证和 OAuth。
- 代理支持:可以通过 HTTP 或 SOCKS 代理发送请求。
- 自定义请求方法:可以发送自定义 HTTP 方法。
- 文件上传:支持文件上传,包括多部分表单请求。
- 响应保存:可以将响应保存到文件中。
HTTPie 的语法简洁,功能强大,是命令行中处理 HTTP 请求的一个很好选择