ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Linux] curl 로 body 에 json 담아서 post 요청하기
    4/Linux 2023. 9. 22. 14:08

    매일 포스트맨(Postman) 과 같은 툴을 활용해서만 요청을 하다가, curl 을 이용해서 요청을 해야하는 일이 생겼다.

    사용하는 김에 정리하려 한다.

     

    아래와 같이 작성하면 간단하게 이용할 수 있다.

    curl --header "Content-Type: application/json" \
      --request POST \
      --data '{"key1":"value1", "key2":"value2"}' \
      http://localhost:8080/api/v1/curl

     

    내가 알기로는 -X POST 라고 사용했던 기억이 있는데 이상하게 curl --help 를 통해서는 볼 수가 없었다.

    그래서 추가로 서치를 해서 찾아보았다.

     

    알아본 바로는 위 코드를 아래와 같이 입력해도 동일하게 작용한다. 글자를 하나라도 덜 입력하고 싶을 수 있으니... 좋은 듯하다.

    curl -H "Content-Type: application/json" \
      -X POST \
      -d '{"key1":"value1", "key2":"value2"}' \
      http://localhost:8080/api/v1/curl

     

    여기서 주의할 점은 json 데이터를 감싸고 있는 따옴표와 내부에 사용되는 따옴표의 종류가 달라야 한다는 것이다.

    만약에 굳이굳이 나는 다 큰따옴표로 해야한다고 하는 사람이라면 아래와 같이 입력하면 된다.

     

    curl -H "Content-Type: application/json" \
      -X POST \
      -d "{\"key1\":\"value1\", \"key2\":\"value2\"}" \
      http://localhost:8080/api/v1/curl

    그리고 넘버 타입이나 불리언 타입이라면 따옴표 없이 값만 입력해주면 된다.

     

    그리고 https 로 보내야 하는데 ssl 인증 오류가 발생하는 경우라면 -k 옵션을 추가 하여 요청을 보내보면 될 수도 있다.

    curl -k \
      -H "Content-Type: application/json" \
      -X POST \
      -d '{"key1":"value1", "key2":"value2"}' \
      https://localhost:8080/api/v1/curl
Designed by Tistory.