Python `requests`를 사용하여 POST 요청을 하는 방법
Wenhao Wang
Dev Intern · Leapcell

Key Takeaways
requests.post()
메서드는 form 및 JSON 데이터 전송을 간소화합니다.- 파일을 쉽게 업로드하고 사용자 정의 헤더를 설정할 수 있습니다.
- 응답 객체를 적절히 처리하는 것이 강력한 애플리케이션에 중요합니다.
Python의 requests
라이브러리는 POST 메서드를 사용하여 서버에 데이터를 보내는 것을 포함하여 HTTP 요청을 만드는 강력한 도구입니다. 이 문서에서는 requests
라이브러리를 사용하여 POST 요청을 수행하는 방법에 대한 개요를 제공하며, 다양한 데이터 형식과 구성을 다룹니다.
requests
라이브러리 설치
requests
라이브러리를 사용하기 전에 Python 환경에 설치되어 있는지 확인하십시오. pip를 사용하여 설치할 수 있습니다.
pip install requests
기본 POST 요청 만들기
POST 요청을 보내려면 대상 URL과 보낼 데이터를 지정하여 requests.post()
메서드를 사용하십시오. 기본적으로 데이터는 Content-Type
헤더가 application/x-www-form-urlencoded
로 전송됩니다.
import requests url = 'https://httpbin.org/post' data = {'key': 'value'} response = requests.post(url, data=data) print(response.text)
이 예제에서 딕셔너리 data
는 form-encoded되어 POST 요청의 본문으로 전송됩니다. 그런 다음 서버의 응답이 출력됩니다.
JSON 데이터 보내기
JSON 형식의 데이터를 예상하는 API와 상호 작용할 때는 post()
메서드에서 json
매개변수를 사용할 수 있습니다. 이 방법은 자동으로 데이터를 JSON으로 인코딩하고 Content-Type
헤더를 application/json
으로 설정합니다.
import requests url = 'https://httpbin.org/post' json_data = {'key': 'value'} response = requests.post(url, json=json_data) print(response.text)
이 메서드는 데이터를 수동으로 인코딩하고 헤더를 설정하는 것에 비해 JSON 데이터를 보내는 프로세스를 간소화합니다.
파일 업로드
requests
라이브러리는 files
매개변수를 사용하여 파일 업로드도 지원합니다. 파일을 업로드하려면 파일 이름을 키로, 파일 객체를 값으로 하는 딕셔너리를 전달하십시오.
import requests url = 'https://httpbin.org/post' files = {'file': open('example.txt', 'rb')} response = requests.post(url, files=files) print(response.text)
이렇게하면 파일이 multipart/form-data 요청으로 전송됩니다.
사용자 정의 헤더 설정
POST 요청에 사용자 정의 헤더를 포함하려면 headers
매개변수를 사용하십시오. 이는 Authorization
또는 사용자 정의 Content-Type
과 같은 헤더를 설정하는 데 유용합니다.
import requests url = 'https://httpbin.org/post' data = {'key': 'value'} headers = {'Authorization': 'Bearer YOUR_ACCESS_TOKEN'} response = requests.post(url, data=data, headers=headers) print(response.text)
문제를 방지하려면 헤더가 서버의 예상과 일치하는지 확인하십시오.
응답 처리
POST 요청의 응답은 유용한 속성과 메서드를 포함하는 Response
객체입니다.
response.status_code
: 응답의 HTTP 상태 코드입니다.response.text
: 응답의 내용으로, 유니코드로 되어 있습니다.response.json()
: 응답을 JSON으로 파싱하고 결과를 반환합니다.
import requests url = 'https://httpbin.org/post' data = {'key': 'value'} response = requests.post(url, data=data) if response.status_code == 200: print('Success!') print(response.json()) else: print('An error occurred.')
응답을 적절히 처리하면 애플리케이션이 다양한 결과에 적절하게 대응할 수 있습니다.
결론
Python의 requests
라이브러리는 HTTP POST 요청을 만드는 프로세스를 간소화합니다. form 데이터, JSON 또는 파일을 보내는 경우 requests
는 이러한 작업을 효율적으로 처리할 수 있는 간단하고 유연한 API를 제공합니다.
FAQs
data=
대신 requests.post()
에서 json=
매개변수를 사용하십시오.
예, files
매개변수를 사용하여 파일 객체를 전달하면 됩니다.
headers
딕셔너리에 포함하고 post()
호출에 전달하십시오.
Python 프로젝트 호스팅을 위한 최고의 선택, Leapcell입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다국어 지원
- Node.js, Python, Go 또는 Rust로 개발하십시오.
무료로 무제한 프로젝트 배포
- 사용량에 대해서만 지불합니다. 요청 없음, 요금 없음.
탁월한 비용 효율성
- 유휴 요금 없이 사용량에 따라 지불합니다.
- 예: $25는 평균 응답 시간 60ms에서 694만 건의 요청을 지원합니다.
간소화된 개발자 경험
- 간편한 설정을 위한 직관적인 UI.
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합.
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅.
손쉬운 확장성 및 고성능
- 쉬운 동시성 처리를 위한 자동 확장.
- 운영 오버헤드가 전혀 없습니다. 빌드에 집중하십시오.
설명서에서 자세히 알아보십시오!
X에서 저희를 팔로우하세요: @LeapcellHQ