cURL로 POST 요청을 보내는 방법

cURL로 POST 요청을 보내는 방법

cURL은 HTTP, HTTPS, FTP를 포함한 다양한 네트워크 프로토콜에서 원활한 데이터 전송을 위해 설계된 다재다능한 명령줄 유틸리티입니다. 모든 주요 운영 체제에서 사용할 수 있는 cURL은 명령줄에서 HTTP 요청을 보내는 표준 도구가 되었습니다. 이 크로스 플랫폼 유틸리티는 HTTP, HTTPS, FTP, IMAP과 같은 프로토콜을 지원하여 API에 요청을 보내고 웹사이트를 스크래핑하기 쉽습니다. cURL은 광범위한 가용성과 프로토콜 지원으로 인해 REST API 문서에서 명령줄에서 직접 API 호출을 테스트하는 빠른 방법으로 일반적으로 참조됩니다.

이 튜토리얼에서는 cURL을 사용하여 POST 요청을 실행하는 방법을 알아보고, 간단한 명령줄 지침을 통해 서버와 효율적으로 통신할 수 있도록 합니다.

POST 요청이란?

POST 요청은 서버로 데이터를 전송하는 데 사용되는 HTTP 메서드이며 가장 일반적인 HTTP 메서드 중 하나입니다. 데이터가 URL에 포함되는 GET 요청과 달리 POST 요청은 요청 본문에 데이터를 전송합니다. 이를 통해 신중한 데이터 전송이 가능하고 GET 요청에 브라우저가 부과하는 URL 길이 제한을 피할 수 있습니다.

POST 요청은 폼 제출, 파일 업로드, API에 JSON 데이터 전송에 자주 사용됩니다. 데이터가 요청 본문에 저장되므로 브라우저 기록에 표시되지 않으며 GET 요청과 달리 POST 요청은 일반적으로 브라우저에서 캐시되지 않습니다.

cURL POST 요청에 대한 실제 사용 사례

cURL POST 요청은 다음을 포함한 다양한 시나리오에서 널리 사용됩니다.

  • REST API 테스트 – 개발자는 cURL을 사용하여 애플리케이션에 API 엔드포인트를 구현하기 전에 빠르게 테스트합니다.
  • 양식 제출 자동화 – cURL을 사용하면 수동 입력 없이 데이터를 제출하여 웹 양식과의 상호작용을 자동화할 수 있습니다.
  • 파일 업로드 – 많은 API가 POST 요청을 사용하여 파일 업로드를 허용하므로 cURL은 이 프로세스를 자동화하는 효과적인 도구입니다.
  • 인증 시스템과 상호 작용 – 개발자는 cURL을 사용하여 사용자를 인증하고 API 토큰이나 자격 증명을 통해 보호된 리소스에 액세스할 수 있습니다.
  • 데이터 스크래핑 및 통합 – cURL의 POST 요청 기능을 사용하면 다양한 온라인 소스에서 데이터를 추출하고 통합하는 작업이 간소화됩니다.

cURL을 사용하여 POST 요청 실행

POST 요청에 cURL을 사용하려면 시스템에 설치되어 있는지 확인하세요. 아직 설치하지 않았다면 cURL 설정 가이드를 참조하세요. 아래는 필수 cURL 옵션을 요약한 참조 표입니다.

짧은 플래그

롱 플래그

인수(들)

설명

-엑스

--요구

(POST 요청의 경우 "POST"를 사용하세요)

요청에 대한 HTTP 메서드를 정의합니다

-비

--매력적인 여자

요청 시 쿠키를 전송합니다

-기음

--쿠키병

받은 쿠키를 파일에 저장합니다

-디

--데이터

POST 요청으로 데이터를 전송합니다

-에프

--실패하다

서버 오류에 대한 무음 실패를 보장합니다.

-에프

--형태

<이름=내용>

양식 데이터 제출(application/x-www-form-urlencoded)

-시간

--헤더

헤더/@파일

사용자 정의 HTTP 헤더 포함

-나

--포함하다

응답에 HTTP 헤더를 표시합니다.

-엘

--머리

헤더만 검색합니다

-케이

--불안정한

SSL 검증을 우회합니다

-엘

--위치

리디렉션을 따릅니다(3XX)

-영형

--산출

지정된 파일에 출력을 저장합니다

-영형

--원격-이름

원격 파일 이름으로 출력을 저장합니다.

-에스

--조용한

출력 메시지를 억제합니다

-다섯

--말 수가 많은

자세한 출력(디버깅)을 가능하게 합니다.

-w

--쓰기--아웃

응답 세부 정보 출력

사용 가능한 옵션의 전체 목록을 보려면 다음을 사용하세요.

컬 --도움말

일반적인 오류 및 해결 방법

cURL이 강력하더라도 사용자는 POST 요청을 보낼 때 종종 오류를 겪습니다. 다음은 몇 가지 일반적인 문제와 해결책입니다.

  • curl: (6) 호스트를 확인할 수 없습니다 . 이는 도메인 이름이 잘못되었거나 DNS 확인 문제가 있음을 의미합니다. URL을 다시 한 번 확인하세요.
  • curl: (7) 호스트에 연결 실패 – 서버에 접근할 수 없음을 나타냅니다. 서버가 온라인 상태이고 활성 인터넷 연결이 있는지 확인하십시오.
  • curl: (35) SSL 연결 오류 – SSL 문제로 인해 요청이 실패하는 경우 -k를 사용하여 SSL 확인을 우회해보세요.
  • HTTP 400 잘못된 요청 - 이는 서버가 요청을 거부했음을 의미하며, 종종 잘못된 데이터 형식으로 인해 발생합니다. 콘텐츠 유형과 데이터 페이로드를 확인하세요.
  • HTTP 401 인증되지 않음 – 인증이 필요하지만 누락되었거나 올바르지 않을 때 발생합니다. API 키 또는 자격 증명이 -u 또는 -H "Authorization: Bearer <token>"로 올바르게 전달되었는지 확인하십시오.

기본 POST 요청 구문

curl -X POST -d "안녕하세요" https://example.com/api

이 명령에서:

  • -X POST는 요청 유형을 지정합니다.
  • -d "Hello"는 전송되는 데이터를 정의합니다.
  • 대상 URL은 https://example.com/api입니다.

콘텐츠 유형 헤더 설정

curl -X POST -H "Content-Type: text/plain" -d "Hello" https://example.com/api

-H "Content-Type: text/plain"을 추가하면 데이터 형식이 일반 텍스트라는 사실을 서버에 알립니다.

JSON 데이터 전송

curl -X POST -H "콘텐츠 유형: application/json" -d '{"key":"value"}' https://example.com/api

콘텐츠 유형으로 application/json을 사용하면 데이터가 JSON으로 올바르게 해석됩니다.

XML 데이터 보내기

curl -X POST -H "Content-Type: application/xml" -d '<?xml version="1.0" encoding="UTF-8"?><root><name>John Doe</name><age>30</age></root>' https://example.com/api

POST로 파일 업로드

curl -X POST -F "file=@/path/to/img.png" https://example.com/api/upload

여러 파일 업로드의 경우:

curl -X POST -F "파일=@/경로/대상/img1.png" -F "파일=@/경로/대상/img2.png" https://example.com/api/upload

cURL을 사용한 인증

curl -u 사용자 이름:비밀번호 https://example.com/login

사용자 이름과 비밀번호를 실제 자격 증명으로 바꾸세요.

결론

cURL은 강력하고 유연한 명령줄 옵션으로 HTTP 상호작용을 간소화합니다. POST 요청을 마스터함으로써 개발자는 API 통신, 데이터 전송 및 파일 업로드를 효율적으로 관리할 수 있습니다. API 엔드포인트를 테스트하거나, 양식 제출을 자동화하거나, 웹사이트에서 데이터를 스크래핑해야 하는 경우, cURL은 가볍고 효과적인 솔루션을 제공합니다. 워크플로를 최적화하기 위해 cURL을 계속 실험하세요!

Plisio는 또한 다음을 제공합니다.

2번의 클릭으로 암호화 송장 생성 and 암호화폐 기부 수락

14 통합

10 가장 많이 사용되는 프로그래밍 언어용 라이브러리

19 암호화폐와 12 블록체인

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.