httpie 工具使用

  HTTPie 是一个 HTTP 的命令行客户端,目标是让 CLI 和 web 服务之间的交互尽可能的人性化。这个工具提供了简洁的 http 命令,允许通过自然的语法发送任意 HTTP 请求数据,展示色彩化的输出。HTTPie 可用于与 HTTP 服务器做测试、调试和常规交互。(官方文档)

主要特性:

  • 直观的语法
  • 格式化和色彩化的终端输出
  • 内置 JSON 支持
  • 支持上传表单和文件
  • HTTPS、代理和认证
  • 任意请求数据
  • 自定义头部
  • 持久性会话
  • 类 Wget 下载
  • 支持 Python 2.6, 2.7 和 3.x
  • 支持 Linux, Mac OS X 和 Windows
  • 插件
  • 文档
  • 测试覆盖率

HTTPie 是用 Python 编写,用到了 Requests 和 Pygments 这些出色的库。

Githubhttps://github.com/jakubroztocil/httpie

1. 安装 httpie

httpie 是跨平台命令,支持 Mac OS X、 Linux、 Windows

  1) Mac OS X 

    brew install httpie        // brew 命令安装

    port install httpie          // ports 命令安装

  2) Linux

    easy_install httpie  (CentOS 5.6/6.5/7.2 都成功)

   # Debian, Ubuntu, etc.
    apt-get install httpie

   # Fedora, CentOS, RHEL, …
    yum install httpie

   # Arch Linux
    pacman -S httpie

3)Windows

  # Make sure we have an up-to-date version of pip and setuptools:
    $ pip install --upgrade pip setuptools
    $ pip install --upgrade httpie

2. httpie 帮助

# http
usage: http [--json] [--form] [--pretty {all,colors,format,none}]
            [--style STYLE] [--print WHAT] [--headers] [--body] [--verbose]
            [--all] [--history-print WHAT] [--stream] [--output FILE]
            [--download] [--continue]
            [--session SESSION_NAME_OR_PATH | --session-read-only SESSION_NAME_OR_PATH]
            [--auth USER[:PASS]] [--auth-type {basic,digest}]
            [--proxy PROTOCOL:PROXY_URL] [--follow]
            [--max-redirects MAX_REDIRECTS] [--timeout SECONDS]
            [--check-status] [--verify VERIFY]
            [--ssl {ssl2.3,ssl3,tls1,tls1.1,tls1.2}] [--cert CERT]
            [--cert-key CERT_KEY] [--ignore-stdin] [--help] [--version]
            [--traceback] [--default-scheme DEFAULT_SCHEME] [--debug]
            [METHOD] URL [REQUEST_ITEM [REQUEST_ITEM ...]]
http: error: the following arguments are required: URL


3. httpie 命令

# 显示请求信息 头及正文(包含返回头200)
http http://www.example.com

# 显示详细的请求(包含请求和返回头200)
http -v http://www.example.com

# 只显示Header
http -h
http --head http://www.example.com
http --header http://www.example.com
http --headers http://www.example.com

# 只显示Body
http -b http://www.example.com
http --body http://www.example.com

# 下载文件
http -d http://www.example.com

# 模拟提交表单
http -f POST http://www.example.com username='mimvp-user'

# 请求删除的方法
http DELETE http://www.example.com

# 传递JSON数据请求(默认就是JSON数据请求)
http PUT http://www.example.com username='mimvp-user' password='mimvp-pwd'

# 如果JSON数据存在不是字符串则用:=分隔,例如
http PUT http://www.example.com username='mimvp-user' password='mimvp-pwd' age:=28 a:=true streets:='["a", "b"]'

# 模拟Form的Post请求, Content-Type: application/x-www-form-urlencoded; charset=utf-8
http --form POST http://www.example.com username='mimvp-user'

# 模拟Form的上传, Content-Type: multipart/form-data
http -f POST example.com/jobs username='mimvp-user' file@~/test.pdf

# 修改请求头, 使用:分隔
http http://www.example.com  User-Agent:mimvp-agent/1.0  'Cookie:a=b;b=c'  Referer:http://www.example.com/

# 认证
http -a username:password http://www.example.com
http --auth-type=digest -a username:password http://www.example.com

# 使用http代理
http --proxy=http:http://217.107.197.174:8081 proxy.http://www.example.com
http --proxy=http:http://user:pass@217.107.197.174:8081 proxy.http://www.example.com
http --proxy=https:http://112.114.96.34:8118 proxy.http://www.example.com
http --proxy=https:http://user:pass@112.114.96.34:8118 proxy.http://www.example.com

 其他功能详见官方文档!

posted @ 2018-10-24 11:36  细雨蓝枫  阅读(493)  评论(0)    收藏  举报