HTTPie 工具使用入門


HTTPie 是一個 HTTP 的命令行客戶端,目標是讓 CLI 和 web 服務之間的交互盡可能的人性化。這個工具提供了簡潔的 http 命令,允許通過自然的語法發送任意 HTTP 請求數據,展示色彩化的輸出。HTTPie 可用於與 HTTP 服務器做測試、調試和常規交互。

HTTPie (pronounced aitch-tee-tee-pie) is a command line HTTP client. 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 can be used for testing, debugging, and generally interacting with HTTP servers.

米撲原文見米撲博客,專注IT技術和量化金融投資

 

主要特性:

  • 直觀的語法
  • 格式化和色彩化的終端輸出
  • 內置 JSON 支持
  • 支持上傳表單和文件
  • HTTPS、代理和認證
  • 任意請求數據
  • 自定義頭部
  • 持久性會話
  • 類 Wget 下載
  • 支持 Python 2.6, 2.7 和 3.x
  • 支持 Linux, Mac OS X 和 Windows
  • 插件
  • 文檔
  • 測試覆蓋率

HTTPie 是用 Python 編寫,用到了 Requests 和 Pygments 這些出色的庫。

Githubhttps://github.com/jakubroztocil/httpie

 

httpie 使用示例

http -h mimvp.com

httpie-gong-ju-shi-yong-ru-men-01

 

1. 安裝 httpie

httpie 是跨平台命令,支持 Mac OS X、 Linux、 Windows

1) Mac OS X 

brew install httpie        // brew 命令安裝

port install httpie          // ports 命令安裝

 

2) Linux

easy_install httpie  (CentOS 5.6/6.5/7.2 都成功

# Debian, Ubuntu, etc.
apt-get install httpie

# Fedora, CentOS, RHEL, …
yum install httpie

# Arch Linux
pacman -S httpie

 

3)Windows

# Make sure we have an up-to-date version of pip and setuptools:
$ pip install --upgrade pip setuptools
$ pip install --upgrade httpie

 

2. httpie 幫助

# http
usage: http [--json] [--form] [--pretty {all,colors,format,none}]
            [--style STYLE] [--print WHAT] [--headers] [--body] [--verbose]
            [--all] [--history-print WHAT] [--stream] [--output FILE]
            [--download] [--continue]
            [--session SESSION_NAME_OR_PATH | --session-read-only SESSION_NAME_OR_PATH]
            [--auth USER[:PASS]] [--auth-type {basic,digest}]
            [--proxy PROTOCOL:PROXY_URL] [--follow]
            [--max-redirects MAX_REDIRECTS] [--timeout SECONDS]
            [--check-status] [--verify VERIFY]
            [--ssl {ssl2.3,ssl3,tls1,tls1.1,tls1.2}] [--cert CERT]
            [--cert-key CERT_KEY] [--ignore-stdin] [--help] [--version]
            [--traceback] [--default-scheme DEFAULT_SCHEME] [--debug]
            [METHOD] URL [REQUEST_ITEM [REQUEST_ITEM ...]]
http: error: the following arguments are required: URL

 

3. httpie 命令

# 顯示請求信息(包含返回頭200)
http mimvp.com

# 顯示詳細的請求(包含請求和返回頭200)
http -v mimvp.com

# 只顯示Header
http -h mimvp.com
http --head mimvp.com
http --header mimvp.com
http --headers mimvp.com

# 只顯示Body
http -b mimvp.com
http --body mimvp.com

# 下載文件
http -d mimvp.com

# 模擬提交表單
http -f POST mimvp.com username='mimvp-user'

# 請求刪除的方法
http DELETE mimvp.com

# 傳遞JSON數據請求(默認就是JSON數據請求)
http PUT mimvp.com username='mimvp-user' password='mimvp-pwd'

# 如果JSON數據存在不是字符串則用:=分隔,例如
http PUT mimvp.com username='mimvp-user' password='mimvp-pwd' age:=28 a:=true streets:='["a", "b"]'

# 模擬Form的Post請求, Content-Type: application/x-www-form-urlencoded; charset=utf-8
http --form POST mimvp.com username='mimvp-user'

# 模擬Form的上傳, Content-Type: multipart/form-data
http -f POST example.com/jobs username='mimvp-user' file@~/test.pdf

# 修改請求頭, 使用:分隔
http mimvp.com  User-Agent:mimvp-agent/1.0  'Cookie:a=b;b=c'  Referer:http://mimvp.com/

# 認證
http -a username:password mimvp.com
http --auth-type=digest -a username:password mimvp.com

# 使用http代理
http --proxy=http:http://217.107.197.174:8081 proxy.mimvp.com
http --proxy=http:http://user:pass@217.107.197.174:8081 proxy.mimvp.com
http --proxy=https:http://112.114.96.34:8118 proxy.mimvp.com
http --proxy=https:http://user:pass@112.114.96.34:8118 proxy.mimvp.com

 

4. httpie 示例

1)請求 mimvp.com(米撲科技)

請求: http mimvp.com

結果: 返回有狀態頭200和網頁正文

httpie-gong-ju-shi-yong-ru-men-02

 

2)僅返回文件頭header

請求: http -h proxy.mimvp.com

結果: 

httpie-gong-ju-shi-yong-ru-men-03

 

3)表單請求登錄

請求: http --form POST proxy.mimvp.com username='mimvp-user' password='mimvp-pwd'

 

4)設置代理請求

請求: 

http --proxy=http:http://217.107.197.174:8081 proxy.mimvp.com
http --proxy=http:http://user:pass@217.107.197.174:8081 proxy.mimvp.com
http --proxy=https:http://112.114.96.34:8118 proxy.mimvp.com
http --proxy=https:http://user:pass@112.114.96.34:8118 proxy.mimvp.com

 

提取代理IP,請訪問米撲代理: http://proxy.mimvp.com

 

 

參考推薦

米撲代理使用示例史上最全最權威的代理使用示例

Node.js 設置代理的兩種方式:superagent-proxy 和 https-proxy-agent

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM