[API] curl 명령어를 통한 API 값 전송

es.Seong·2023년 10월 13일
0

OS : Window 11
Test Tool : cmd

특정 회사에서 API를 통해 유지 보수 중인 포털에 JSON 값을 전송하는 테스트를 맡아서 진행을 하고 있다...

DB 및 Java 컨트롤러 로직과 jsp 파일을 수정한 후에 로컬 환경에서 테스트를 진행하기 위해 여러블로그를 찾아보고, GPT에게도 물어보았다.

API 테스트를 진행할 때 사용하는 툴은 대표적으로 'Postman'이라는 툴이 있는데, 추가적인 툴을 설치할 수 없는 환경에서 테스트를 해야했기에 'cmd'를 사용하여 테스트를 진행했다.

Postman 공식 홈페이지
https://www.postman.com/

cmd 즉, 명령 프롬프트에서 API 테스트를 진행하려면 curl이라는 명령어를 사용해야 한다.

만약 테스트를 통해 {"A" : "test", "B": 12345, "C" : "API"} 라는 JSON 값을 http://localhost:8080/inputPage.do 라는 곳으로 POST한다고 하자.

이때 명령 프롬프트에 입력라는 명령어는 다음과 같다.

curl -X POST -H "Content-Type: application/json" -d "{\"A\" : \"test\", \"B\": 12345, \"C\" : \"API\"}" http://localhost:8080/inputPage.do

다음과 같이 명령어를 입력하면 정상적으로 JSON 값이 전송된다.
입력한 명령어를 세부적으로 살펴보자.

  1. -X POST : -X는 HTTP 메서드를 지정하며, POST 메서드를 사용하겠다는 것을 나타낸다.

  2. -H "Content-Type: application/json" : -H는 HTTP 헤더를 설정한다. "Content-Type" 헤더를 설정하고 있으며, application/json은 전송되는 데이터가 JSON 형식임을 나타낸다.

  3. -d "{\"A\" : \"test\", \"B\": 12345, \"C\" : \"API\"}" : -d 는 POST 요청의 본문 데이터(body)를 의미한다. JSON 형식으로 데이터를 전달하는 부분이며, Key와 Value 값이 포함되어야 한다. 또한, {}내에 ""의 경우 \ 를 사용해줘야 오류가 발생하지 않는다.
    자료형이 int인 경우 입력값 ""로 감싸주지 않고 12345처럼 그대로 적어주면 된다.

  4. http://localhost:8080/inputPage.do : 마지막으로, curl 명령어로 요청을 보낼 URL을 지정한다.

profile
Graduate student at Pusan National University, majoring in Artificial Intelligence

2개의 댓글

comment-user-thumbnail
2024년 4월 2일

안녕하세요, 혹시 curl에 대해서 궁금한 게 있는데 혹시 질문드려도 괜찮을까요?

1개의 답글