• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

[开发利器] 命令行请求,还得看革 curl 命的 httpie

技术杂谈 勤劳的小蚂蚁 3个月前 (01-16) 88次浏览 已收录 0个评论 扫描二维码


WEB应用开发或者测试的时候,总免不了需要发送 HTTP 请求。
首先请你想一下,我们要发送一个HTTP请求的时候,脑海中出现的是怎样一种顺序呢?
我猜,大概和HTTP规范里的写法也差不了太多。基本会是:我要发送一个 GET/POST 请求到 XX网站。 传X,Y,Z这几个参数。或者是我要发XX网站发送X,Y这几个参数,上传Z文件之类的。
这种时候,你一般是用什么工具测试呢? Postman,Curl?
啊哈,我一般也是用这两个工具
我想大家基本类似。图形界面的工具一般用 Postman, 命令行工具,则会使用 curl。不过话说回来,curl命令除了个别的几个参数,大部分都记不住。经常都是用到的时候现去查。
后来在 Spring 大会上,看几个演讲者都在使用几个不错的命令行工具。其中进行HTTP 请求测试的工具是个名为「HTTP派」的工具。最近查到了,就是下面这个: 「HTTPie」,分享给大家。
这是个什么工具呢?
官网:https://httpie.org/
官网介绍的时候,还贴心的把发音都给加上了「aitch-tee-tee-pie」。
官网概括的是这样一句话:
a command line HTTP client with an intuitive UI, JSON support, syntax highlighting, wget-like downloads, plugins, and more。
特点如下:
富有表现力,语法直观
格式化和带彩色的终端输出
内置对 JSON 的支持
支持表单和文件上传
支持 HTTPS、代理以及认证
任意请求数据
自定义 headers
持久化 sessions
类似 Wget 的下载
支持 Linux, Mac OS X 和 Windows 系统
支持插件

回到前面的场景,我们通过命令行发送一个请求的时候,在 HttpPie 里异常简单。
http GET localhost:8080
即可。
我们看到,整个用起来,很符合我们语言描述的习惯。发送请求,要使用的HTTP 方法, 目标地址 传递参数等等。
比如我们要发送的是 POST 请求,并且带参数,那直接这样写
http POST  abc.com/test abc=def userid=123
这样就给abc.com/test 发了一个 POST 请求,带了两个参数: abc 和userid
而且,更有趣的是,这两个参数默认会被以application/json的形式传递,我们不再需要将所有的参数整合成json串,也不需要显式的指点ContentType。
如果我们是在本地调试,那更简单了。
直接执行 http :8080/context 就把请求发到了应用上。连 localhost 都省了。
更方便的是,你想把本地的一个txt文件或者JSON文件做为参数内容传递,那直接在参数里写成这样即可
desc=@filename.txt
要把JSON 请求改成 form 提交,也很简单, http -f 。增加一个 「-f」的选项就实现了。
你说页面上有安全验证,那也难不倒它。 我们以测试 tomcat 的 manager 应用为例,
http -a tomat:tomcat  :8080/manager/html
-a 指定了要进行BASIC认证。
用户名:密码 就完成了认证,着实简单了不少。
如果嫌输出的内容多,你只关心header或者body,那加个参数就OK,比如在请求中加-h 代表输出header信息, -b就表示输出 body的信息。
要下载一个文件,也是 So easy:
http –download https://github.com/jkbrzt/httpie/archive/master.tar.gz
自己本地操作想要实验一下,也不需要自己写 Demo。 启动起来 Tomcat,自带的 manager 应用可以验证 BASIC 认证, examples 里可以验证 POST 请求,from 提交等等。
看了半天,想不想试试?
安装也简单,在各个操作系统上安装都不难。
从名字里大概也听的出来,Pie 和 py 一个音,所以这货是基于python 的,Windows 平台安装的时候直接通过python 的 pip 安装 httpie 就行。
Linux/Mac 我想更难不倒你。 brew/yum 这类命令更是直达目标。
不想安装尝个鲜? 官网也提供了一个在线的工具:
https://httpie.org/run 访问之后就是个在线的Linux 命令行,直接就能上手操作了。

丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:[开发利器] 命令行请求,还得看革 curl 命的 httpie
喜欢 (0)
[247507792@qq.com]
分享 (0)
勤劳的小蚂蚁
关于作者:
温馨提示:本文来源于网络,转载文章皆标明了出处,如果您发现侵权文章,请及时向站长反馈删除。

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00