HTTPie
是一個 HTTP 的命令行客戶端。其目標是讓 CLI 和 web 服務之間的交互盡可能的人性化。HTTPie 可用於與 HTTP 服務器做測試、調試和常規交互。
1 定制 HTTP 方法
除了默認的 GET 方法,還可以使用其他方法(比如 PUT,POST,HEAD)。例如,發送一個 HTTP PUT 請求:
http PUT 請求的url 參數名=參數值 參數名=參數值
2 提交表單
使用 http 命令提交表單
‘-f’ 選項使 http 命令序列化數據字段,並將 ‘Content-Type’ 設置為 “application/x-www-form-urlencoded; charset=utf-8”。
http -f POST
請求的url
參數名=參數值
3 JSON數據請求
HTTPie 內置 JSON(一種日漸普及的數據交換格式)支持。事實上,HTTPie 默認使用的內容類型(content-type)就是 JSON。因此,當不指定內容類型發送數據字段時,它們會自動序列化為 JSON 對象。
// 如果JSON參數不是字符串則用:=分隔,例如
http PUT請求的url
name=nate password=nate_password age:=28 a:=true streets:='["a", "b"]'
4 輸出重定向
HTTPie 的另外一個用戶友好特性是輸入重定向,你可以使用緩沖數據提供 HTTP 請求內容。例如:
http POST api.serena.com/info/query < info.json
5 顯示詳細的請求
http -v
6 只顯示Header
http -h
7 只顯示Body
http -b
8 下載文件
http -d
9 請求刪除的方法
http DELETE
10 模擬Form的Post請求上傳文件
http -f POST serena.com/upload name=testfile file@~/testfile.txt
11 修改請求頭
例如,我們發送一個 HTTP GET 請求到 www.test.com ,使用定制用戶代理(user-agent)和來源(referer),還有定制頭部(比如 MyParam)。
http 網站 User-Agent:用戶代理 'Cookie:cookie' Referer:來源
12 認證
http -a username:password serena.com
http --auth-type=digest -a username:password serena.com
13 使用http代理
http --proxy=http:http://192.168.1.254:8080 serena.com
http --proxy=http:http://user:password@192.168.1.254:8080 serena.com