Linux中國

用膩了 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:定製頭部

你可以使用 的格式來定製頭部。例如,我們發送一個 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.test.com
Accept: */*
Referer: http://xmodulo.com
Accept-Encoding: gzip, deflate, compress
MyParam: Foo
User-Agent: Xmodulo/1.0

例2:下載文件

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

$ http www.test.com/my_file.zip > my_file.zip

或者:

$ http --download www.test.com/my_file.zip

例3:定製 HTTP 方法

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

$ http PUT www.test.com name='Dan Nanni' email=dan@email.com

例4:提交表單

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

$ http -f POST www.test.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.test.com
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.test.com
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.test.com/db/lookup < my_info.json

或者:

$ echo &apos;{"name": "Dan Nanni"}&apos; | http POST api.test.com/db/lookup

結束語

在這篇文章中,我介紹了 HTTPie,一個 wget 和 curl 的可能替代工具。除了這裡展示的幾個簡單的例子,你可以在其官方網站上找到 HTTPie 的很多有趣的應用。再次重複一遍,一款再強大的工具也取決於你對它的了解程度。從個人而言,我更傾向於 HTTPie,因為我在尋找一種更簡潔的測試複雜網路介面的方法。

你怎麼看?

via: http://xmodulo.com/wget-curl-alternative-linux.html

作者:Dan Nanni 譯者:wangjiezhe 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國