HTTPie使用详解

概述

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

安装httpie

  • Windows
pip install --upgrade httpie
  • Linux
apt-get install httpie
  • macOS
brew install httpie

使用httpie

使用语法:

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

METHOD没有指定时,默认为 get

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

  • get请求
http httpbin.org/get name==Zarten zhihu_id==Zarten

等同于:

http get http://httpbin.org/get

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

  • post请求

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

http httpbin.org/post name=Zarten
  • 传递json

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

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

{
    "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",
    }
}
http httphin.org/post myinfo=Ee:\json.txt

也可直接重定向输入

http httpbin.org/post < e:\json.txt
  • 提交表单

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

http -f httpbin.org/post name=Zarten
  • 设置请求头

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

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

http httpbin.org/get user-agent:flozi11a/5.B

若不需要某个头信息,只需形如 header: 即可

http httpbin.org/get user-agent:

若某个头信息设置成空值,形如 header; 即可

http httpbin.org/get user-agent;
  • 重定向

默认不会自动重定向

http httpbin.org/redirect/1

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

http -F httpbin.org/redirect/1
  • 使用代理

通过参数 --proxy

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

basic授权为:

http --proxy=http:http://user:[email protected]:3128 example.org
  • SSL证书验证

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

http --uerify=no httpbin.org/get
  • 输出参数选项

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

响应头: --headers 或 -h

响应体: --body 或 -b

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

http -h httpbin.org/get
  • 重定向输出

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

拿淘宝网举例:

http https://www.taobao.com > e:\taobao.txt
  • 下载文件

使用参数 --download 或 -d 下载

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

http -d -o e:\httpie https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-4.4.11-rc1.tgz

results matching ""

    No results matching ""