개발공작소
article thumbnail
728x90

 

이번에 회사동기한테 curl이라는 걸 들어서 뭔가 하고 봤는데, 단순 API 검사를 하는데 쓰는 녀석이더라.

기존 포스트맨과 같은데, 다른점이라고는 포스트맨은 소프트웨어이고, curl은 cmd와 같은 Windows 자체에서

command를 이용해서 한다는 점이다..

 

그래서 이걸 어디다 쓰나.. 생각을 해보았는데, 포스트맨을 사용못하는 환경에서는 쓸 수 있지 않을까 싶어

정리해본다. 그럼 바로 시작해보자.

 

 

Windows에서 사용하기

============================================================================

 

우선 ( 해당 링크 )로 가서 curl 소프트웨어를 다운로드 받도록 하자. 경로는 기억해둬야함..

자기 운영체제에 맞는 녀석을 다운로드 받도록 하자. 나는 Windows 64bit를 받도록 하겠다.

 

 

 

 

다운로드 받은 zip파일을 원하는 경로에 풀어준다. 그 뒤 cmd를 열어준 뒤, 해당 경로로 이동하자.

 

 

이제 curl 명령어를 통해 API검사를 할 수 있다. GET, POST 방식으로 데이터 조회 및 업데이트가 가능하다.

오늘은 그냥 get을 통해 데이터 조회만 해보겠다.. 뭘 할까 하다가 많이 쓰이는 공공데이터포털을 이용해보겠다..

 

기본 명령어는 아래와 같다.

 

curl 요청URL

 

 

 

이렇게 데이터를 잘 가져오는 것을 확인 할 수 있다..

필요하면 아래 옵션을 이용하는 것도 가능하다.

 

옵션  설명 
-a  --append  업로드시 대상 파일에 추가 
-E --cert  클라이언트 인증 파일 및 비밀 번호(SSL) 지정 
-K --config  설정 파일 지정 
-C --continue-at  지정된 오프셋부터 전송 재개 
-b --cookie  쿠키 문자열 또는 쿠키 파일 지정 
-c --cookie-jar  동작 후 지정된 파일에 쿠키 기록 
-d --data  HTTP POST 데이터 
-D  --dump-header  파일에 헤더 내용 기록 
-f --fail  HTTP 에러 발생시 표준 입출력으로 출력하지 않음 
-F  --form  HTTP 다중 POST 데이터 지정 
-P --ftp-port  PASV대신 포트를 어드레스로 사용 
-G --get  데이터를 GET 방식으로 전송 
-g --globoff  { }와 [ ]를 사용하여 URL 순서와 범위를 비활성화 
-H --header  사용자 정의 헤더를 지정 
-I --head  문서 정보를 출력 
-h  --help 텍스트 도움말 출력 
-0  --http1.0  HTTP 1.0 사용 
-i  --include  출력에서 프로토콜 헤더를 포함 
-k --insecure  certs 없이 SSL 사이트 연결을 허용 
-4 --ipv4  IPv4 주소 이름 해석 
-6 --ipv6  IPv6 주소 이름 해석 
-j  --junk-session-cookies  파일로부터 읽어 들인 세션 쿠키 무시 
-l --list-only  FTP 디렉토리 이름만 열러 
-L --location  요청된 페이지 위치가 변경된 경우 새로운 위치로 요청 
-M --manual  모든 사용 방법 출력 
-m --max-time  전송에 허용된 최대 시간 설정 
-n --netrc  사용자 계정과 비밀 번호를 .netrc로 읽어들임 
-N --no-buffer  출력 스트림의 버퍼링 비활성화 
-o --output  표준 출력대신 파일로 출력 
-#  --progress-bar  전송 상태에 대한 진행 상태 표시 
-x --proxy  주어진 포트에 대한 HTTP 프록시 사용 
-U  --proxy-user  프록시 사용자 계정 및 비밀번호 설정 
-p --proxytunnel  HTTP 프록시 터널을 통한 운영 
-Q --quote  파일 전송 이전에 서버로 명령어 전송 
-r --range  범위에 있는 바이트 검색 
-e --referer 레퍼러 URL 지정 
-O --remote-name  출력 파일을 원격 파일 이름으로 지정 
-R --remote-time  로컬 출력 파일의 시간을 원격 파일의 시간으로 설정 
-X --request  사용할 요청 명령을 지정
-S --show-error  에러를 표시 
-s --silent 아무런 출력을 표시 하지 않음 
-Y --speed-limit  지정된 전송 속도보다 느린 경우 전송 중단 
-y --speed-time  지정된 시간보다 느린 경우 전송 중단 
-2 --sslv2  SSLv2를 사용 
-3 --sslv3  SSLv3를 사용 
-t --telnet-option  telnet 옵션 지정 
-z  --time-cond  시간 조건에 따른 전송 
-1  --tlsv1  TLSv1(SSL) 사용 
-T --upload-file  지정된 파일을 원격 사이트에 전송 
-B --use-ascii  ASCII/텍스트 전송 사용 
-u --user  서버의 사용자 및 비밀번호 지정 
-A --user-agent  서버로 전송되는 User-Agent 정보 
-v --verbose  verbose모드로 설정(디버깅시 활용) 
-V  --version  버전 정보 출력 
-w --write-out  종료 후 출력된 정보 설정 

 

 

이렇게 써보니, 포트스맨이 더 편하지 않나 싶다, 결과도 깔끔하게 확인이 가능하고.. 다음에는 VScode로

cli를 통한 curl도 한번 확인해보겠다.

728x90
profile

개발공작소

@모찌바라기

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!