Note |
---|
curl 설치 및 사용법 이 제 블로그에서 제일 인기있는 글인데 너무 장황해서 이 페이지에 HTTP 주요 사용법만 요약했습니다. |
주요 옵션
옵션 | 설명 |
---|
-k | https 사이트를 SSL certificate 검증없이 연결합니다. |
-L | 서버에서 HTTP 301 이나 HTTP 302 응답이 왔을 경우 redirection URL 로 따라갑니다. --max-redirs 뒤에 숫자로 redirection 을 몇 번 따라갈지 지정할 수 있으며기본 값은 50입니다 |
-v | 동작하면서 자세한 옵션을 출력합니다. |
-o | curl 은 remote 에서 받아온 데이타를 -o 옵션 뒤에 적어준 FILE 명으로 저장합니다. |
-d | HTTP Post 방식으로 데이타를 전송합니다. |
-u | HTTP Basic Auth에 사용할 Id 와 암호를 지정합니다. |
-H | 전송시 추가할 HTTP Header 를 기술합니다. |
서버에서 다운로드
대문자 -O 옵션을 주면 URL의 맨 뒤에 있는 resource 명인 bc-1.07.1.tar.gz 로 파일을 저장합니다.
...
Code Block |
---|
language | bash |
---|
title | 파일명 지정 저장 |
---|
|
curl -o bc.tgz http://ftp.gnu.org/gnu/bc/bc-1.07.1.tar.gz |
HTTP Basic auth
-u 뒤에 로그인할 id(userid)와 암호(password)를 지정하며 구분을 위해 : 를 주어야 합니다.
Code Block |
---|
language | bash |
---|
title | 서버의 파일이름으로 저장 |
---|
|
curl -u userid:password http://www.example.com/user.html |
HTTP POST 로 data 전송
데이타 파일을 보내는 -d 옵션 뒤에 전송할 json 데이타를 적어주고 헤더를 추가하는 -H 옵션으로 "Accept: application/json" 와 "Content-Type: application/json" 를 기술합니다.
...
Code Block |
---|
|
curl -u userid:password -L -v -d @my-json-file -H "Accept: application/json" -H "Content-Type: application/json" 'https://postman-echo.com/post' |
jq 와 연동
명령행 JSON 처리기인 jq 를 활용해서 서버의 JSON 응답을 포맷팅
...
Code Block |
---|
language | bash |
---|
title | jq 로 json 포맷팅 |
---|
|
curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.[2]' |
같이 보기