Chinaunix首页 | 论坛 | 博客
  • 博客访问: 42972
  • 博文数量: 9
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 107
  • 用 户 组: 普通用户
  • 注册时间: 2017-08-07 18:38
个人简介

米扑,小而美,简爱 mimvp.com

文章分类

全部博文(9)

文章存档

2019年(1)

2018年(3)

2017年(5)

我的朋友

分类: 网络与安全

2017-10-31 11:55:57

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 编写,用到了  和  这些出色的库。

Github


httpie 使用示例

http -h mimvp.com

httpie-gong-ju-shi-yong-ru-men-01


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 帮助

点击(此处)折叠或打开

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


3. httpie 命令

点击(此处)折叠或打开

  1. # 显示请求信息(包含返回头200)
  2. http mimvp.com
  3.  
  4. # 显示详细的请求(包含请求和返回头200)
  5. http -v mimvp.com
  6.  
  7. # 只显示Header
  8. http -h mimvp.com
  9. http --head mimvp.com
  10. http --header mimvp.com
  11. http --headers mimvp.com
  12.  
  13. # 只显示Body
  14. http -b mimvp.com
  15. http --body mimvp.com
  16.  
  17. # 下载文件
  18. http -d mimvp.com
  19.  
  20. # 模拟提交表单
  21. http -f POST mimvp.com username='mimvp-user'
  22.  
  23. # 请求删除的方法
  24. http DELETE mimvp.com
  25.  
  26. # 传递JSON数据请求(默认就是JSON数据请求)
  27. http PUT mimvp.com username='mimvp-user' password='mimvp-pwd'
  28.  
  29. # 如果JSON数据存在不是字符串则用:=分隔,例如
  30. http PUT mimvp.com username='mimvp-user' password='mimvp-pwd' age:=28 a:=true streets:='["a", "b"]'
  31.  
  32. # 模拟Form的Post请求, Content-Type: application/x-www-form-urlencoded; charset=utf-8
  33. http --form POST mimvp.com username='mimvp-user'
  34.  
  35. # 模拟Form的上传, Content-Type: multipart/form-data
  36. http -f POST example.com/jobs username='mimvp-user' file@~/test.pdf
  37.  
  38. # 修改请求头, 使用:分隔
  39. http mimvp.com User-Agent:mimvp-agent/1.0 'Cookie:a=b;b=c' Referer:http://mimvp.com/
  40.  
  41. # 认证
  42. http -a username:password mimvp.com
  43. http --auth-type=digest -a username:password mimvp.com
  44.  
  45. # 使用http代理
  46. http --proxy=http:http://217.107.197.174:8081 proxy.mimvp.com
  47. http --proxy=http:http://user:pass@217.107.197.174:8081 proxy.mimvp.com
  48. http --proxy=https:http://112.114.96.34:8118 proxy.mimvp.com
  49. http --proxy=https:http://user:pass@112.114.96.34:8118 proxy.mimvp.com


4. httpie 示例

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

请求: http mimvp.com

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

httpie-gong-ju-shi-yong-ru-men-02


2)仅返回文件头header

请求: http -h proxy.mimvp.com

结果: 

httpie-gong-ju-shi-yong-ru-men-03


3)表单请求登录

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


4)设置代理请求

请求: 

http --proxy=http: proxy.mimvp.com
http --proxy=http: proxy.mimvp.com
http --proxy=https: proxy.mimvp.com
http --proxy=https: proxy.mimvp.com


提取代理IP,请访问米扑代理: 



阅读(1514) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~