您好,登錄后才能下訂單哦!
本篇內容主要講解“在Linux下HTTPie工具的使用方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“在Linux下HTTPie工具的使用方法”吧!
如果你經常需要通過終端以非交互模式訪問網絡服務器(例如,從網絡上下載文件,或者是測試 RESTful 網絡服務接口),可能你會選擇的工具是 wget 或 curl。通過大量的命令行選項,這兩種工具都可以處理很多非交互網絡訪問的情況(比如這里、這里,還有這里)。然而,即使像這些一樣的強大的工具,你也只能發揮你所了解的那些選項的功能。除非你很精通那些繁冗的語法細節,這些工具對于你來說只不過是簡單的網絡下載器而已。
就像其宣傳的那樣,“給人用 curl 類工具”,HTTPie 設計用來增強 wget 和 curl 的可用性。它的主要目標是使通過命令行與網絡服務器進行交互的過程變得盡可能的人性化。為此,HTTPie 支持具有表現力、但又很簡單很直觀的語法。它以彩色模式顯示響應,并且還有一些不錯的優點,比如對 JSON 的良好支持,和持久性會話用以作業流程化。
我知道很多人對把像 wget 和 curl 這樣的無處不在的、可用的、完美的工具換成完全沒聽說過的軟件心存疑慮。這種觀點是好的,特別是如果你是一個系統管理員、要處理很多不同的硬件的話。然而,對于開發者和終端用戶來說,重要的是效率。如果我發現了一個工具的用戶更佳替代品,那么我認為采用易于使用的版本來節省寶貴的時間是毫無疑問的。沒有必要對替換掉的工具保持信仰忠誠。畢竟,對于 Linux 來說,最好的事情就是可以選擇。
在這篇文章中,讓我們來了解并展示一下我所說的 HTTPie,一個用戶友好的 wget 和 curl 的替代。
在 Linux 上安裝 HTTPie
HTTPie 是用 Python 寫的,所以你可以在幾乎所有地方(Linux,MacOSX,Windows)安裝它。而且,在大多數的 Linux 發行版中都有編譯好的安裝包。
Debian,Ubuntu 或者 Linux Mint:
代碼如下:
$ sudo apt-get install httpie
Fedora:
代碼如下:
$ sudo yum install httpie
CentOS/RHEL:
首先,啟用EPEL 倉庫,然后運行:
代碼如下:
$ sudo yum install httpie
對于任何 Linux 發行版,另一個安裝方法時使用pip。
代碼如下:
$ sudo pip install --upgrade httpie
HTTPie 的例子
當你安裝完 HTTPie 后,你可以通過輸入 http 命令來調用它。在這篇文章的剩余部分,我會展示幾個有用的 http 命令的例子。
例1:定制頭部
你可以使用 <header:value> 的格式來定制頭部。例如,我們發送一個 HTTP GET 請求到 www.test.com ,使用定制用戶代理(user-agent)和來源(referer),還有定制頭部(比如 MyParam)。
代碼如下:
$ http www.test.com User-Agent:Xmodulo/1.0 Referer:http://xmodulo.com MyParam:Foo
注意到當使用 HTTP GET 方法時,就無需明確指定 HTTP 方法。
這個 HTTP 請求看起來如下:
代碼如下:
GET / HTTP/1.1
Host: www.neiyidaogou.com</p>
<p> Accept: */*
Referer: http://xmodulo.com
Accept-Encoding: gzip, deflate, compress
MyParam: Foo
User-Agent: Xmodulo/1.0
例2:下載文件
你可以把 http 作為文件下載器來使用。你需要像下面一樣把輸出重定向到文件。
代碼如下:
$ http www.neiyidaogou.com/my_file.zip > my_file.zip
或者:
代碼如下:
$ http --download www.neiyidaogou.com/my_file.zip
例3:定制 HTTP 方法
除了默認的 GET 方法,你還可以使用其他方法(比如 PUT,POST,HEAD)。例如,發送一個 HTTP PUT 請求:
代碼如下:
$ http PUT www.neiyidaogou.com name='Dan Nanni' email=dan@email.com
例4:提交表單
使用 http 命令提交表單很容易,如下:
代碼如下:
$ http -f POST www.neiyidaogou.com name='Dan Nanni' comment='Hi there'
'-f' 選項使 http 命令序列化數據字段,并將 'Content-Type' 設置為 "application/x-www-form-urlencoded; charset=utf-8"。
這個 HTTP POST 請求看起來如下:
代碼如下:
POST / HTTP/1.1
Host: www.neiyidaogou.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 內置 JSON(一種日漸普及的數據交換格式)支持。事實上,HTTPie 默認使用的內容類型(content-type)就是 JSON。因此,當你不指定內容類型發送數據字段時,它們會自動序列化為 JSON 對象。
代碼如下:
$ http POST www.test.com name='Dan Nanni' comment='Hi there'
這個 HTTP POST 請求看起來如下:
代碼如下:
POST / HTTP/1.1
Host: www.neiyidaogou.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 的另外一個用戶友好特性是輸入重定向,你可以使用緩沖數據提供 HTTP 請求內容。例如:
代碼如下:
$ http POST api.jb51.net/db/lookup < my_info.json
或者:
代碼如下:
$ echo '{"name": "Dan Nanni"}' | http POST api.test.com/db/lookup
到此,相信大家對“在Linux下HTTPie工具的使用方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。