특징
httpie 는 python 으로 개발된 콘솔용 http client 유틸리티로 curl 대신 http 개발 및 디버깅 용도로 사용 가능하며 다음과 같은 특징이 있다.
- curl 에 비해 사용이 쉬움
- json 지원 기능 내장
- 출력을 포맷팅하여 보여주므로 가독성이 뛰어남
- Form 과 file 업로드가 쉬움
- HTTP 인증 및 커스텀 헤더 설정등
설치
python 으로 개발되었으므로 yum 이나 apt-get 보다는 pip 로 설치하는 것을 권장한다.
pip 설치
wget https://bootstrap.pypa.io/get-pip.py python get-pip.py
httpie 설치
pip install --upgrade httpie
기본 사용
http [flags] [METHOD] URL [ITEM [ITEM]]
- flags
- METHOD : HTTP 메소드로 생략시 GET.
- URL: 연결할 url
기본 연결
http httpie.org
자세한 정보 출력
-v 옵션 사용
http -v httpie.org
follow redirect
--follow 옵션을 사용하면 HTTP 301, 302 응답이 올 경우 해당 링크로 이동
http -v --follow http://httpie.org
Content 제외하고 Header만 출력
서버의 HTTP Response 를 디버깅 해야 할 경우 컨텐츠는 거추장스러우므로 --headers 옵션을 사용하면 헤더 정보만 출력함.
http --headers http://httpie.org
SSL 인증서 검증 안 함
서버의 SSL 인증서에 문제가 있어서 HTTPS 통신에 문제가 있을 경우 --verify no 옵션을 사용하면 인증서 검증 안함
http --verify no http://httpie.org
커스텀 Header 설정
커스텀 HTTP 헤더를 전송하려면 Header:Value
문법을 사용하면 됨:
http example.org User-Agent:Bacon/1.0 'Cookie:valued-visitor=yes;foo=bar' \ Accept:application/json Referer:http://httpie.org/
HTTP Authentication
--auth, 또는 -a 옵션 뒤에 인증 정보를 전달
http -a username:password example.org
암호를 커맨드에 전달하지 않을 경우 프롬프트에서 입력
http -a username example.org
Digest auth:
http --auth-type=digest -a username:password example.org
Ref
- https://github.com/jkbrzt/httpie
- https://orchestrate.io/blog/2014/06/20/curl-vs-httpie-http-apis/
- https://miteshshah.github.io/sysadmin/httpie-http-for-humans/