HTTPie, curl 보다 쉬운 http 호출

HTTPie(에치-티-티-파이)는 CLI 환경에서 cURL을 대체하기 위해서 나온 유틸리티입니다. 간단히 설치 방법과 사용법을 알아보도록 하겠습니다.

소개

curl과 wget을 잘 사용하고 있었는데, 오늘 집에 가는 길에 HTTPie를 알게 되었습니다. HTTPie은 다양한 OS 환경에서 curl과 wget을 대체할 수 있고, 더 낳아가 강력한 세션 및 인증 기능을 제공합니다. 다음은 HTTPie의 주요 특징입니다.

  • 직관적인 명령행 문법
  • 결과에 대한 포멧팅
  • JSON 타입 지원
  • Form 파일 업로드
  • HTTPS, 프록시 및 인증
  • wget과 같은 다운로드 기능
  • 다양한 OS(Linux, Mac OS X, Windows) 지원
  • 플러그인 기능
  • Python 2.6 이상 지원

이 정도면 충분히 검토할 만하죠? 더 자세한 설명은 공식 사이트 문서를 참고해 주시고, 이 글에서는 간단한 사용법만 소개하도록 하겠습니다.

설치

Mac과 Linux는 패키지 관리자를 이용해서 설치가 가능하며, 기타 환경에서는 Python의 pip를 이용해 설치하면 됩니다. 저는 우분투를 사용하므로 apt-get을 통해 설치를 했습니다.

기본 사용법

HTTPie는 다음과 같은 명령어로 HTTP 호출을 할 수 있습니다. 더 자세한 명령어는 “http –help”로 확인할 수 있습니다.

아래 명령어는 combineads 사용자 계정으로 POST 메소드로 https://api.github.com/repos/jkbrzt/httpie/issues/83/comments 주소를 호출하며, JSON 데이터는 body=’HTTPie is awesome! :heart:’ 를 보내는 내용입니다. 참고로 -v 옵션을 사용해 request의 header와 body의 내용도 찍었습니다.

다음은 www.google.co.kr에 search 변수에 popit값을  Querystring으로 요청을 보내는 예제입니다. “==”을 키/값 형태로 사용한 것에 주목해주세요.

다음은 POST 데이터로 keyword와 param2를 보내는 예제입니다. Google에서는 POST 메소드를 지원하지 않는 군요.^^; Querystring의 데이터는 “==”로 구분하며, POST의 데이터는 “=”로 구분하는 것을 알 수 있습니다.[추가 구분자]

다음은 “-d” 옵션을 사용해 파일을 다운로드 받는 것입니다.

이 것외에도 다양한 기능들이 있으나 상세한거는 HTTPie 공식 문서를 참고해주세요. 저는 간단하게 cURL과 wget을 대체하는 수준에서만 알아봤습니다.

앞으로 출퇴근길에 이렇게 알게 되는 유용한 팁을 “지하철 포스팅” 시리즈로 올리겠습니다.
감사합니다.