安基网 欢乐生肖 系统 Web技术 查看内容

HTTPie:超爽的HTTP命令行客户端

2019-10-31 10:11| 投稿: |来自:


免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

摘要: 之前在命令行下进行HTTP服务的调试和信息查看都是使用经典的cURL,不过前段时间发现一个交互更加友好的工具,就是HTTPie。先放一个HTTPie官方的一个HTTPie VS cURL的图给大家看看。如果你经常需要用终端以非交互模式访问网络服务器(比如,下载文件、测试REST服务),可能你会选择的工具是wget或curl, ...

之前在命令行下进行HTTP服务的调试和信息查看都是使用经典的cURL,不过前段时间发现一个交互更加友好的工具,就是HTTPie。

先放一个HTTPie官方的一个HTTPie VS cURL的图给大家看看。

如果你经常需要用终端以非交互模式访问网络服务器(比如,下载文件、测试REST服务),可能你会选择的工具是wget或curl,通过大量的选项,这两种工具也都可以处理很多非交互网络访问的情况(比如,如何通过wget下载多个文件,如何在wget中设置自定义的http头,如何在curl中设置自定义的HTTP头)。然而,除非你很精通这些繁复的语法细节,这些工具对于你来说,不过是简单的下载工具而已。

“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则在使用时的表现力、人性化做得比wget、curl好得多,就像在官网上宣传的那样,它追求的是人性化、简单自然的语法,以及彩色的输出。而且HTTPie还有一些不错的优点,比如对JSON的良好支撑、持久性会话等特性。

上面说了那么多,咱们废话少说,先来了解并展示一下HTTPie。

安装

Linux上安装

Debian, Ubuntu或Linux Mint

sudo apt-get install httpie

Fedora,CentOS/RHEL

sudo yum install httpie

或者使用python的方式来安装

sudo pip install --upgrade httpie

Mac OSX

brew install httpie

安装开发版本

# Mac OSX
brew install httpie --HEAD
# Python安装方式
pip install --upgrade https://github.com/jkbrzt/httpie/tarball/master

使用例子

定制头部

http xx.github.io/blog/2015/07/10/httpie-howto/ User-Agent:Xmodlo/1.0 Referer:http://xx.github.io

这个HTTP请求看起是这样。

GET /blog/2015/07/10/httpie-howto/ HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: xx.github.io
Referer: http://xx.github.io
User-Agent: Xmodlo/1.0

下载文件

你也可以把HTTPie作为文件下载器来使用。

http xx.github.io/blog/2015/07/10/httpie-howto/ > httpie-howto.html

或者

http --download xx.github.io/blog/2015/07/10/httpie-howto/

使用其他HTTP方法

除了默认的GET方法,你还可以使用其他方法(比如PUT、POST、DELETE、HEAD)

PUT

http PUT xx.github.io name='x x' email='xx@email.com'

POST

http -f POST xx.github.io name='xx xx' email='xx@email.com'

-f 选项使http命令序列化数据字段,并将Content-Type设置为application/x-www-form-urlencoded;charset=utf-8

这个HTTP POST请求看起这样:

POST / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 41
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Host: xx.github.io
User-Agent: HTTPie/0.9.2
name=x+x&email=xx%40email.com

HEAD

http HEAD xx.github.io

HEAD这个方法只会让服务器返回http response headers。

这个命令结果如下:

Request

HEAD / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: xx.github.io
User-Agent: HTTPie/0.9.2

Response

HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Age: 0
Cache-Control: max-age=600
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 36794
Content-Type: text/html; charset=utf-8
Date: Wed, 15 Jul 2015 09:26:22 GMT
Expires: Wed, 15 Jul 2015 09:36:22 GMT
Last-Modified: Sun, 12 Jul 2015 11:32:15 GMT
Server: GitHub.com
Vary: Accept-Encoding
Via: 1.1 varnish
X-Cache: MISS
X-Cache-Hits: 0
X-Served-By: cache-fra1227-FRA
X-Timer: S1436952382.011631,VS0,VE99

JSON支持

HTTPie内置JSON的支持。事实上HTTPie默认使用的Content-Type就是application/json。因此,当你不指定Content-Type发送请求参数时,它们就会自动序列化为JSON对象。

http POST xx.github.io name='x x' email='xx@email.com'

这个请求看起来就是这样:

POST / HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 52
Content-Type: application/json
Host: xx.github.io
User-Agent: HTTPie/0.9.2
{
"email": "xx@email.com",
"name": "Tx Dx"
}

输入重定向

HTTPie的另外一个友好特性就是输入重定向,你可以使用缓冲数据提供HTTP请求内容。例如:

http POST xx.github.io < my_info.json

或:

echo '{"name": "Tony Deng","email": "xx@email.com"}' | http POST xx.github.io


小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

本文出自:https://www.toutiao.com/a6753586153846211084/

免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

相关阅读

最新评论

 最新
返回顶部
河北11选5 幸运飞艇官网 上海11选5走势 欢乐生肖 三分时时彩 极速快乐8 99棋牌 三分PK拾平台 幸运赛车 PK10牛牛