国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

在Linux下HTTPie工具的使用教程

2020-07-10 11:28:22
字體:
供稿:網(wǎng)友

如果你經(jīng)常需要通過終端以非交互模式訪問網(wǎng)絡(luò)服務(wù)器(例如,從網(wǎng)絡(luò)上下載文件,或者是測試 RESTful 網(wǎng)絡(luò)服務(wù)接口),可能你會選擇的工具是 wget 或 curl。通過大量的命令行選項(xiàng),這兩種工具都可以處理很多非交互網(wǎng)絡(luò)訪問的情況(比如這里、這里,還有這里)。然而,即使像這些一樣的強(qiáng)大的工具,你也只能發(fā)揮你所了解的那些選項(xiàng)的功能。除非你很精通那些繁冗的語法細(xì)節(jié),這些工具對于你來說只不過是簡單的網(wǎng)絡(luò)下載器而已。

就像其宣傳的那樣,“給人用 curl 類工具”,HTTPie 設(shè)計(jì)用來增強(qiáng) wget 和 curl 的可用性。它的主要目標(biāo)是使通過命令行與網(wǎng)絡(luò)服務(wù)器進(jìn)行交互的過程變得盡可能的人性化。為此,HTTPie 支持具有表現(xiàn)力、但又很簡單很直觀的語法。它以彩色模式顯示響應(yīng),并且還有一些不錯(cuò)的優(yōu)點(diǎn),比如對 JSON 的良好支持,和持久性會話用以作業(yè)流程化。

我知道很多人對把像 wget 和 curl 這樣的無處不在的、可用的、完美的工具換成完全沒聽說過的軟件心存疑慮。這種觀點(diǎn)是好的,特別是如果你是一個(gè)系統(tǒng)管理員、要處理很多不同的硬件的話。然而,對于開發(fā)者和終端用戶來說,重要的是效率。如果我發(fā)現(xiàn)了一個(gè)工具的用戶更佳替代品,那么我認(rèn)為采用易于使用的版本來節(jié)省寶貴的時(shí)間是毫無疑問的。沒有必要對替換掉的工具保持信仰忠誠。畢竟,對于 Linux 來說,最好的事情就是可以選擇。

在這篇文章中,讓我們來了解并展示一下我所說的 HTTPie,一個(gè)用戶友好的 wget 和 curl 的替代。
在 Linux 上安裝 HTTPie

HTTPie 是用 Python 寫的,所以你可以在幾乎所有地方(Linux,MacOSX,Windows)安裝它。而且,在大多數(shù)的 Linux 發(fā)行版中都有編譯好的安裝包。
Debian,Ubuntu 或者 Linux Mint:

   

復(fù)制代碼
代碼如下:
$ sudo apt-get install httpie

Fedora:

   

復(fù)制代碼
代碼如下:
$ sudo yum install httpie

CentOS/RHEL:

首先,啟用EPEL 倉庫,然后運(yùn)行:

   

復(fù)制代碼
代碼如下:
$ sudo yum install httpie

對于任何 Linux 發(fā)行版,另一個(gè)安裝方法時(shí)使用pip。

   

復(fù)制代碼
代碼如下:
$ sudo pip install --upgrade httpie

HTTPie 的例子

當(dāng)你安裝完 HTTPie 后,你可以通過輸入 http 命令來調(diào)用它。在這篇文章的剩余部分,我會展示幾個(gè)有用的 http 命令的例子。
例1:定制頭部

你可以使用 <header:value> 的格式來定制頭部。例如,我們發(fā)送一個(gè) HTTP GET 請求到 www.test.com ,使用定制用戶代理(user-agent)和來源(referer),還有定制頭部(比如 MyParam)。

   

復(fù)制代碼
代碼如下:
$ http www.test.com User-Agent:Xmodulo/1.0 Referer:http://xmodulo.com MyParam:Foo

注意到當(dāng)使用 HTTP GET 方法時(shí),就無需明確指定 HTTP 方法。

這個(gè) HTTP 請求看起來如下:

   

復(fù)制代碼
代碼如下:
GET / HTTP/1.1
Host: m.survivalescaperooms.com</p><p> Accept: */*
Referer: http://xmodulo.com
Accept-Encoding: gzip, deflate, compress
MyParam: Foo
User-Agent: Xmodulo/1.0

例2:下載文件

你可以把 http 作為文件下載器來使用。你需要像下面一樣把輸出重定向到文件。

   

復(fù)制代碼
代碼如下:
$ http m.survivalescaperooms.com/my_file.zip > my_file.zip

或者:

   

復(fù)制代碼
代碼如下:
$ http --download m.survivalescaperooms.com/my_file.zip

例3:定制 HTTP 方法

除了默認(rèn)的 GET 方法,你還可以使用其他方法(比如 PUT,POST,HEAD)。例如,發(fā)送一個(gè) HTTP PUT 請求:

   

復(fù)制代碼
代碼如下:
$ http PUT m.survivalescaperooms.com name='Dan Nanni' email=dan@email.com

例4:提交表單

使用 http 命令提交表單很容易,如下:

   

復(fù)制代碼
代碼如下:
$ http -f POST m.survivalescaperooms.com name='Dan Nanni' comment='Hi there'

'-f' 選項(xiàng)使 http 命令序列化數(shù)據(jù)字段,并將 'Content-Type' 設(shè)置為 "application/x-www-form-urlencoded; charset=utf-8"。

這個(gè) HTTP POST 請求看起來如下:

   

復(fù)制代碼
代碼如下:
POST / HTTP/1.1
Host: m.survivalescaperooms.com</p><p> Content-Length: 31
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Accept-Encoding: gzip, deflate, compress
Accept: */*
User-Agent: HTTPie/0.8.0
name=Dan+Nanni&comment=Hi+there

例5:JSON 支持

HTTPie 內(nèi)置 JSON(一種日漸普及的數(shù)據(jù)交換格式)支持。事實(shí)上,HTTPie 默認(rèn)使用的內(nèi)容類型(content-type)就是 JSON。因此,當(dāng)你不指定內(nèi)容類型發(fā)送數(shù)據(jù)字段時(shí),它們會自動序列化為 JSON 對象。

   

復(fù)制代碼
代碼如下:
$ http POST www.test.com name='Dan Nanni' comment='Hi there'

這個(gè) HTTP POST 請求看起來如下:

   

復(fù)制代碼
代碼如下:
POST / HTTP/1.1
Host: m.survivalescaperooms.com</p><p> Content-Length: 44
Content-Type: application/json; charset=utf-8
Accept-Encoding: gzip, deflate, compress
Accept: application/json
User-Agent: HTTPie/0.8.0
{"name": "Dan Nanni", "comment": "Hi there"}

例6:輸出重定向

HTTPie 的另外一個(gè)用戶友好特性是輸入重定向,你可以使用緩沖數(shù)據(jù)提供 HTTP 請求內(nèi)容。例如:

   

復(fù)制代碼
代碼如下:
$ http POST api.VeVB.COm/db/lookup < my_info.json

或者:

   

復(fù)制代碼
代碼如下:
$ echo '{"name": "Dan Nanni"}' | http POST api.test.com/db/lookup

結(jié)束語

在這篇文章中,我介紹了 HTTPie,一個(gè) wget 和 curl 的可能替代工具。除了這里展示的幾個(gè)簡單的例子,你可以在其官方網(wǎng)站上找到 HTTPie 的很多有趣的應(yīng)用。再次重復(fù)一遍,一款再強(qiáng)大的工具也取決于你對它的了解程度。從個(gè)人而言,我更傾向于 HTTPie,因?yàn)槲以趯ふ乙环N更簡潔的測試復(fù)雜網(wǎng)絡(luò)接口的方法。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 祁东县| 会泽县| 华亭县| 汶川县| 上林县| 萝北县| 保定市| 来凤县| 天等县| 边坝县| 呼伦贝尔市| 江阴市| 微山县| 迁安市| 淳化县| 哈巴河县| 禄劝| 仪陇县| 广州市| 道真| 边坝县| 侯马市| 江陵县| 金坛市| 凌云县| 体育| 大丰市| 胶州市| 当雄县| 二连浩特市| 新密市| 河池市| 德兴市| 茶陵县| 潍坊市| 吉首市| 华池县| 徐汇区| 兖州市| 红原县| 龙门县|