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

HTTPie (pronounced aitch-tee-tee-pie) is a command line HTTP client. Its goal is to make CLI interaction with web services as human-friendly as possible. It provides a simple http command that allows for sending arbitrary HTTP requests using a simple and natural syntax, and displays colorized output. HTTPie can be used for testing, debugging, and generally interacting with HTTP servers.

米扑原文见米扑博客,专注IT技术和量化金融投资

主要特性:

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

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

Githubhttps://github.com/jakubroztocil/httpie

httpie 使用示例

http -h mimvp.com

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 mimvp.com # 显示详细的请求(包含请求和返回头200)
http -v mimvp.com # 只显示Header
http -h mimvp.com
http --head mimvp.com
http --header mimvp.com
http --headers mimvp.com # 只显示Body
http -b mimvp.com
http --body mimvp.com # 下载文件
http -d mimvp.com # 模拟提交表单
http -f POST mimvp.com username='mimvp-user' # 请求删除的方法
http DELETE mimvp.com # 传递JSON数据请求(默认就是JSON数据请求)
http PUT mimvp.com username='mimvp-user' password='mimvp-pwd' # 如果JSON数据存在不是字符串则用:=分隔,例如
http PUT mimvp.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 mimvp.com username='mimvp-user' # 模拟Form的上传, Content-Type: multipart/form-data
http -f POST example.com/jobs username='mimvp-user' file@~/test.pdf # 修改请求头, 使用:分隔
http mimvp.com User-Agent:mimvp-agent/1.0 'Cookie:a=b;b=c' Referer:http://mimvp.com/ # 认证
http -a username:password mimvp.com
http --auth-type=digest -a username:password mimvp.com # 使用http代理
http --proxy=http:http://217.107.197.174:8081 proxy.mimvp.com
http --proxy=http:http://user:pass@217.107.197.174:8081 proxy.mimvp.com
http --proxy=https:http://112.114.96.34:8118 proxy.mimvp.com
http --proxy=https:http://user:pass@112.114.96.34:8118 proxy.mimvp.com

4. httpie 示例

1)请求 mimvp.com(米扑科技)

请求: http mimvp.com

结果: 返回有状态头200和网页正文

2)仅返回文件头header

请求: http -h proxy.mimvp.com

结果:

3)表单请求登录

请求: http --form POST proxy.mimvp.com username='mimvp-user' password='mimvp-pwd'

4)设置代理请求

请求:

http --proxy=http:http://217.107.197.174:8081 proxy.mimvp.com
http --proxy=http:http://user:pass@217.107.197.174:8081 proxy.mimvp.com
http --proxy=https:http://112.114.96.34:8118 proxy.mimvp.com
http --proxy=https:http://user:pass@112.114.96.34:8118 proxy.mimvp.com

提取代理IP,请访问米扑代理: http://proxy.mimvp.com

参考推荐

米扑代理使用示例(史上最全最权威的代理使用示例)

Node.js 设置代理的两种方式:superagent-proxy 和 https-proxy-agent

最新文章

  1. ABP之依赖注入
  2. 百度浏览器+hao123评价
  3. paip.陕北方言 广东方言的不同单字 1千高频字
  4. app.config *.exe.config 和*.vshost.exe.config基础学习
  5. 【转载】ITU-RBT.656视频标准接口
  6. USB -- BULK_ONLY和UFI协议
  7. ↗☻【编写可维护的JavaScript #BOOK#】第9章 将配置数据从代码中分离出来
  8. ZOJ 1825 compoud words
  9. [Unity 3D] Unity 3D 性能优化 (一)
  10. 【原创】纯OO:从设计到编码写一个FlappyBird (五)
  11. 欧姆龙PLC CP1E型号的90,91,190
  12. 【十】虚拟机工具 03 - jinfo命令使用
  13. [JavaScript]iframe的contentWindow
  14. BZOJ3862 Little Devil I 树链剖分
  15. ubuntu python apache2 wsgi django框架
  16. 利用链式队列(带头节点)解决银行业务队列简单模拟问题(c++)-- 数据结构
  17. Docker 集群管理
  18. golang 之 channel
  19. 【BZOJ4864】神秘物质 [Splay]
  20. 3.了解linux系统以及搭建学习环境

热门文章

  1. 解决https 请求过程中SSL问题
  2. sftp配置多个用户权限的问题
  3. jQuery组件封装之return this.each(function () {});
  4. CVE-2019-0214: Apache Archiva arbitrary file write and delete on the server
  5. 下拉框选择 <from:select>
  6. MySQL Windows安装连接
  7. 【Distributed】分布式任务调度平台
  8. window下redis的安装和使用
  9. 你不知道的JavaScript LHS 和 RHS 查找
  10. JAVA遇见HTML——JSP篇:JavaBeans