curl로 바뀌는 편리한 명령 HTTPie를 사용해 보았습니다.
사람들의 데모를 보면서 새로운 도구를 아는 것은 매우 재미 있습니다.
Linux의 쉘의 HttpClient라고 하면
curl
입니다만, 오늘 본 데모로 http
라는 커멘드입니다. 그 명령에 대해 소개합니다.HTTPie 입니다.
HTTPie란?
이미지 h tps : // h t 피어. rg/ 공식 사이트에서
특징으로 다음이 있습니다.
설치
macOS
Homebrew
$ brew install httpie
또는 MacPorts
$ port install httpie
리눅스
데비안, 우분투 등
$ apt-get install httpie
Fedora, CentOS, RHEL 등
$ yum install httpie
Windows 기타
Python 패키지 관리 시스템 pip을 사용합니다.
$ pip install --upgrade pip setuptools
$ pip install --upgrade httpie
HTTPie를 사용해보기
Hello World
$ http httpie.org
httpie.org는 왠지 301을 돌려주는 것 같고,
301
가 돌려주면 성공입니다. 신택스 하이라이트되어 있어 보기 쉽네요!HTTP/1.1 301 Moved Permanently
CF-RAY: 36c2f9ffc4692e15-NRT
Cache-Control: max-age=3600
Connection: keep-alive
Date: Fri, 09 Jun 2017 09:13:43 GMT
Expires: Fri, 09 Jun 2017 10:13:43 GMT
Location: https://httpie.org/
Server: cloudflare-nginx
Transfer-Encoding: chunked
HTTP 메서드도 쉽게 사용할 수 있습니다.
HTTPie
는 표준으로 Content-type: application/json
를 지정하기 때문에, 특히 API Server 에 액세스 할 때에 편리한 생각이 듭니다.예를 들어 POST하는 경우는 예를 들면 다음과 같이 기재합니다. 이 예제에서는 의사(?) API를 제공하는 htt 항공편. 오 rg을 사용합니다.
$ http POST http://httpbin.org/post X-API-Token:123 name=John
X-Api-Token
는 제대로 headers
에 들어가, "name":"John"
가 data
로서 POST 할 수 있는 것을 알 수 있군요.HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 471
Content-Type: application/json
Date: Wed, 14 Jun 2017 03:05:16 GMT
Server: meinheld/0.6.1
Via: 1.1 vegur
X-Powered-By: Flask
X-Processed-Time: 0.000705003738403
{
"args": {},
"data": "{\"name\": \"John\"}",
"files": {},
"form": {},
"headers": {
"Accept": "application/json",
"Accept-Encoding": "gzip, deflate",
"Connection": "close",
"Content-Length": "16",
"Content-Type": "application/json",
"Host": "httpbin.org",
"User-Agent": "HTTPie/0.9.2",
"X-Api-Token": "123"
},
"json": {
"name": "John"
},
"origin": "219.106.251.57",
"url": "http://httpbin.org/post"
}
curl이라면
$ curl -i -X POST http://httpbin.org/post \
--header "Content-type: application/json" \
--header 'X-Api-Agent: 123' \
--data '{"name":"John"}'
됩니다.
반대로
HTTPie
로 form
로 보내고 싶은 경우는 -f
옵션을 사용합니다.JSON을 보낼 때 TIPS
http POST http://httpbin.org/post name=John age:=29 married:=false array:='["value1","value2"]'
그러면
"{\"name\": \"John\", \"age\": 29, \"married\": false, \"array\": [\"value1\", \"value2\"]}"
data가 전송됩니다.=
를 사용하면 name=John
가 "name": "John"
표준으로 우변은 String
입니다만, :=
를 사용하면 int
이나 bool
도 보낼 수 있습니다.배열을 보내고 싶은 경우는
'["value1","value2"]'
와 같이 합니다.파일에서 읽으려면
=@
또는 :=@
를 사용하십시오.자세한 내용은 문서를 참조하십시오.
Documentation | HTTPie – CLI HTTP client
Windows에서 사용하는 경우의 주의점
"
가 특수 문자로 처리되므로 명령줄에서 제대로 작동하지 않습니다. PowerShell을 사용하여 "
를 \"
로 이스케이프하면 같은 방식으로 작동합니다.쉘, PowerShell에서 까다로운 느낌으로 HTTP 액세스하고 싶은 분은 사용해 보는 것은 어떻습니까?
이상입니다.
Reference
이 문제에 관하여(curl로 바뀌는 편리한 명령 HTTPie를 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ytabuchi/items/02fa15ac209823a4d19f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)