업무/공부

CURL 사용법, 옵션 정리

60cod 2023. 6. 29. 11:40

curl 옵션

-X (--request) GET 방식이 아닐 때 HTTP Method 설정
ex) POST, PUT, DELETE, PATCH
-H (--header) HTTP Header 항목과 값 정의
-d (--data)




POST, PUT 메소드로 요청 시 HTTP Body에 담아서 보낼 데이터
-d @파일명.형식 파일에 담아 전송할 때
ex) -d @data.js
--data-binary @파일명.형식
이미지나 압축 파일 등 전송
ex) --data-binary @test.jpg
--data-urlencode
공백 등 특수 문자 변환
단, 모든 특수 문자를 url 형식으로 인코딩 해버리기 때문에 파라미터 여러 개일 경우 옵션을 분리해줘야 한다. ex) "name=test&age=30" → --data-urlencode "name=test" --data-urlencode "age=30"
JSON 데이터 전송 시 1) 홑따옴표로 감싸주기 
(쌍따옴표로 감싸주게 되면 데이터 내의 모든 쌍따옴표 앞에 \를 붙여줘야 함.)

2) -H Content-Type : application/json 설정
-v (--verbose) 상세 디버깅
-i (--include) 응답 헤더도 출력
-I (--head) 응답 바디 없이 응답 헤더만 출력 ← 리턴값 없이 리턴코드만 리턴되는 경우 헤더 정보 확인하기
-w (--write-out) '%' 대신 다른 문자를 종료 기호로 사용하고 싶을 때
ex) -w '\n'
요청/응답에 관한 정보 출력할 때
ex) -w %{변수_이름}\n
-o / -O 출력 결과를 파일에 저장
-u HTTP 인증 전달 
ex) curl -u username:password URL
--connect-timeout  타임아웃 설정
--mail-from, --mail-rcpt  SMTP 프로토콜을 이용해 메일 전송 ex) curl --mail-from test@test.com --mail-rcpt test2@test.com