A CLI tool for HTTP API Testing
HAT (HTTP API Testing) is a command line HTTP client. Its goal is to make HTTP API testing as easy as possible. It providers powerful ablitity to make HTTP request but with very simple arguments. HAT can be used for HTTP API testing, debugging and you can as well use it as CURL.
- OSX: https://github.com/likexian/hat-go/releases/download/v0.8.4/hat_osx_0.8.4.tar.gz
- Linux 32Bit: https://github.com/likexian/hat-go/releases/download/v0.8.4/hat_linux_x86_0.8.4.tar.gz
- Linux 64Bit: https://github.com/likexian/hat-go/releases/download/v0.8.4/hat_linux_x86_64_0.8.4.tar.gz
tar zxvf hat_*_0.8.4.tar.gz
sudo mv hat /usr/local/bin
hat --version
hat [FLAGS] [METHOD] [URL] [OPTIONS]
HAT is so powerful that it works without any arguments.
hat
=> This will make a GET request to http://127.0.0.1/.
FLAGS specify data type of POST and PUT
-j, --json POST/PUT data as json encode (default)
-f, --form POST/PUT data as form encode
FLAGS specify verbose
-v, --verbose
FLAGS specify show request/response time and download speed
-t
FLAGS specify request and response total timeout
--timeout=<int>
FLAGS specify show the version
-V, --version
FLAGS specify show the help
-h, --help
METHOD specify http request method
GET HTTP GET GET / HTTP/1.1 (default)
POST HTTP POST POST / HTTP/1.1
PUT HTTP PUT PUT / HTTP/1.1
DELETE HTTP DELETE DELETE / HTTP/1.1
URL is the HTTP URL for request, support http and https
<empty> for http://127.0.0.1/ (default)
:8080 for http://127.0.0.1:8080/
:8080/api/ for http://127.0.0.1:8080/api/
/api/ for http://127.0.0.1/api/
OPTIONS can specify the HTTP headers, HTTP body and HTTP URL query, add as many as you want
key:value HTTP headers for example User-Agent:HAT/0.1.0
key=value HTTP body for example name=likexian
key?=value HTTP query for example name?=likexian set URL to /?name=likexian
@file HTTP POST/PUT Data for example @post.json will use post.json content as post/put body data
Just get a url
hat http://127.0.0.1/
Get a url and specify the query
hat http://127.0.0.1/ name?=likexian pass?=xxxxxxxx
=> This will make a GET request to http://127.0.0.1/?name=likexian&pass=xxxxxxxx
Get a url and specify the headers
hat http://127.0.0.1/ User-Agent:HAT/0.1.0 X-Forward-For:192.168.1.1
POST data to url (json)
hat post http://127.0.0.1/api/user name=likexian pass=xxxxxxxx
POST data to url (form)
hat -f post http://127.0.0.1/api/user name=likexian pass=xxxxxxxx
POST file content as raw body data
hat @post.json http://127.0.0.1/api/user
PUT file content as raw body data
hat @post.json put http://127.0.0.1/api/user/1
=> If you are using the @file option as above, the content-type will be set depending on the format of the file, content-type will be json if the content is json (same as -f) formating, otherwise form (as -f).
Copyright 2014-2015, Li Kexian
Apache License, Version 2.0