HTTPie使用详解

本文最后更新于 2023年12月29日 上午

HTTPie使用详解

1 概述

HTTPie 设计用来增强 wget 和 curl 的可用性。它的主要目标是使通过命令行与网络服务器进行交互的过程变得尽可能的人性化。为此,HTTPie 支持具有表现力、但又很简单很直观的语法。它以彩色模式显示响应,并且还有一些不错的优点,比如对 JSON 的良好支持,和持久性会话用以作业流程化。

image.png

HTTPie 是一个命令行形式的 http 客户端,它提供了简单的 http 命令,返回带代码高亮的结果信息,可以很方便的在 http 交互场景下进行测试、调试等。废话不多说,直接上干货。

1
pip install --upgrade httpie

使用 HTTPie

下面主要以 http://httpbin.org 网站来进行测试

使用语法:

1
http [flags] [METHOD] URL [ITEM [ITEM]]

METHOD 没有指定时,默认为 get

URL 协议没有指定时,默认为 http://

Get 请求

1
http httpbin.org/get name==Zarten zhihu_id==Zarten

等同于:

http get http://httpbin.org/get

若需要带参数时用 param==value 的形式

image.png

Post 请求

Post 请求时表单用 = ,默认为 post

1
http httpbin.org/post name=Zarten 

image.png

传递 Json

格式跟上面差不多,若传递值不是字符串时,用 :=

若当进行 post 请求时,传递数据太多,我们可以直接传一个 json 类型文件,用 =@ 和 :=G

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"name": "Zarten",
"age": 1,
"hobbies": [
"http",
"pies"
],
"description": "John is a nice guy who likes pies.",
"married": false,
"name": "John",
"bookmarks": {
"HTTPie": "http://httpie.org",
}
}

image.png

提交表单

提交表单只需添加 -f--form 即可

image.png

设置请求头

从上图中可以看出,有些请求头是默认的,例如 User-Agent 为 “HTTPie/0.9.9”

通常我们需要修改请求头,只需设置形式如: header:value

image.png

重定向

默认不会自动重定向

image.png

若要跟随重定向,显示最终的响应结果,在前面加 –follow 或 -F

image.png

使用代理

通过参数 --proxy

1
2
--proxy=http:http://1.1.1.1:1000
---proxy=https:https://1.1.1.1:1000

Basic 授权为:

1
http --proxy=http:http://user:pass@10.10.1.10:3128 example.org

SSL 证书验证

使用参数 --verify=no 来跳过 SSL 验证,默认是 yes

输出参数选项

可以选择性的打印出响应头、响应体、或两者

响应头: --headers-h

响应体: --body-b

两者: --verbose-v 默认输出是两者

###重定向输出

有时,我们需要将输出到某个文件中,特别是响应的内容太多,导致不能翻页查看,这时我们可以重定向文件,符号为 >

拿淘宝网举例:

1
http https://www.taobao.com > e:\taobao.txt

image.png

下载文件

使用参数 --download-d 下载

使用参数 --output-o 来指定输出地址

image.png

参考

  1. HTTPie使用详解 - 知乎 (zhihu.com)
  2. 技术|用腻了 wget 或 curl,有什么更好的替代品吗? (linux.cn)

HTTPie使用详解
https://hexo.leelurker.com/posts/30175
作者
LeeLurker
发布于
2023年12月29日
许可协议