设为首页 收藏本站
查看: 889|回复: 0

[经验分享] HTTPie 工具使用入门

[复制链接]

尚未签到

发表于 2017-11-23 07:07:11 | 显示全部楼层 |阅读模式
  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 这些出色的库。
  Github:https://github.com/jakubroztocil/httpie
  httpie 使用示例
  http -h mimvp.com
DSC0000.png

  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和网页正文
DSC0001.png

  2)仅返回文件头header
  请求: http -h proxy.mimvp.com
  结果:
DSC0002.png

  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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-409720-1-1.html 上篇帖子: 【Linux学习】2.Linux常见命令行 下篇帖子: lynx终端下的浏览
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表