Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Note

curl 설치 및 사용법 이 제 블로그에서 제일 인기있는 글인데 너무 장황해서 이 페이지에 HTTP 주요 사용법만 요약했습니다. 

Table of Contents

주요 옵션

옵션설명
-khttps 사이트를 SSL certificate 검증없이 연결합니다.
-L

서버에서 HTTP 301 이나 HTTP 302 응답이 왔을 경우 redirection URL 로 따라갑니다.

--max-redirs 뒤에 숫자로 redirection 을 몇 번 따라갈지 지정할 수 있으며기본 값은 50입니다

-v동작하면서 자세한 옵션을 출력합니다.
-ocurl 은 remote 에서 받아온 데이타를 -o 옵션 뒤에 적어준 FILE 명으로 저장합니다.
-dHTTP Post 방식으로 데이타를 전송합니다.
-uHTTP Basic Auth에 사용할 Id 와 암호를 지정합니다.
-H전송시 추가할 HTTP Header 를 기술합니다.

서버에서 다운로드

대문자 -O 옵션을 주면 URL의 맨 뒤에 있는 resource 명인 bc-1.07.1.tar.gz 로 파일을 저장합니다.

...

Code Block
languagebash
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
languagebash
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
languagebash
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
languagebash
titlejq 로 json 포맷팅
curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.[2]'


같이 보기