이번에 회사동기한테 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도 한번 확인해보겠다.
'서버 > 네트워크' 카테고리의 다른 글
[네트워크] telnet 명령어를 통해 네트워크 연결 상태를 확인해보자. ( 윈도우 and 리눅스 ) (0) | 2022.06.14 |
---|---|
[기타] cmd에서 ping 날리는 방법 ( ping 날리는 것을 습관화 하자. ) (0) | 2022.02.28 |
[기타] tcping 명령어를 통해 포트 오픈여부 확인하는 방법. (0) | 2022.02.04 |
[네트워크] 방화벽 - 외부에서 내부 서버로 접속해보자 (2) ( feat. 인바운드 규칙, 아웃바운드 규칙 설정 ) (0) | 2022.01.31 |
[네트워크] 포트 포워딩 - 외부에서 내부 서버로 접속해보자 (1) (0) | 2022.01.31 |