파이썬 Requests HTTP 통신 완전정복: GET, POST부터 실전 활용까지!
파이썬 Requests HTTP 통신, 제대로 활용하고 계신가요? 이 글 하나로 requests 모듈의 설치부터 GET, POST, PUT, DELETE 등 다양한 HTTP 요청, 헤더·파라미터·세션 관리, JSON 처리, 인증, 실전 예제까지 완벽하게 정리해드립니다. Requests는 웹 API 연동, 크롤링, 자동화 등 실무에서 가장 많이 쓰이는 HTTP 통신 라이브러리입니다.
많은 분들이 "GET과 POST의 차이는?", "헤더와 파라미터는 어떻게 추가하지?", "세션, 인증, 오류 처리는 어떻게?" 등 다양한 고민을 하시죠. 이 글에서 requests의 모든 궁금증을 해결하세요!
📋 목차
- Requests 모듈 소개와 설치 방법
- GET 요청과 파라미터 전송
- POST 요청과 데이터/파일 전송
- 헤더, 쿠키, 세션 관리
- JSON 데이터 처리와 응답 파싱
- 인증, 오류 처리, 실전 활용팁
🔍Requests 모듈 소개와 설치 방법
Requests는 파이썬에서 HTTP 요청을 간단하게 처리할 수 있는 인기 라이브러리입니다. 웹 API 호출, 크롤링, 자동화 스크립트 등에 필수적으로 사용됩니다.
- 간결하고 직관적인 API
- GET, POST, PUT, DELETE 등 다양한 HTTP 메서드 지원
- 헤더, 쿠키, 세션, 인증 등 다양한 기능 내장
# 설치 pip install requests
한줄 요약: requests는 파이썬 HTTP 통신의 표준!
📝GET 요청과 파라미터 전송
GET 요청은 requests.get(url, params=딕셔너리)로 사용합니다. 파라미터는 URL 쿼리스트링에 자동 추가됩니다.
import requests
url = "https://api.example.com/search"
params = {'q': 'python', 'page': 1}
response = requests.get(url, params=params)
print(response.status_code) # 200
print(response.text) # 응답 본문
상태 코드로 요청 성공(200) 여부를 확인하고, response.text로 본문, response.json()으로 JSON 응답을 파싱할 수 있습니다.
한줄 요약: GET은 params로 쿼리 전송, 응답은 text/json으로!
⚡POST 요청과 데이터/파일 전송
POST 요청은 requests.post(url, data=, json=, files=)로 사용합니다. 데이터는 data(폼), json(JSON), files(파일)로 구분해 전송합니다.
# 폼 데이터 전송 data = {'name': '홍길동', 'age': 30} response = requests.post(url, data=data)
JSON 데이터 전송
import json
headers = {'Content-Type': 'application/json'}
response = requests.post(url, data=json.dumps(data), headers=headers)
파일 전송
files = {'file': open('example.txt', 'rb')}
response = requests.post(url, files=files)
POST 요청은 서버에 데이터 생성, 수정, 파일 업로드 등에 널리 사용됩니다.
한줄 요약: POST는 data/json/files로 다양한 데이터 전송!
⭐헤더, 쿠키, 세션 관리
요청 헤더는 headers=딕셔너리로 추가할 수 있습니다. User-Agent, Authorization, Content-Type 등 다양한 헤더를 자유롭게 설정하세요.
headers = { 'Authorization': 'Bearer YOUR_ACCESS_TOKEN', 'User-Agent': 'my-app/1.0' } response = requests.get(url, headers=headers)
여러 요청에서 상태 유지가 필요하다면 requests.Session()을 사용하세요. 세션 객체로 쿠키, 로그인 상태 등을 자동 관리할 수 있습니다.
session = requests.Session() session.get('https://example.com') session.post('https://example.com/login', data=login_data) session.close()
한줄 요약: headers, 세션으로 인증·상태 유지까지 완벽!
💡JSON 데이터 처리와 응답 파싱
대부분의 웹 API는 JSON 형식으로 데이터를 주고받습니다. requests는 response.json()으로 응답을 바로 파싱해 딕셔너리로 변환합니다.
response = requests.get('https://api.github.com') if response.status_code == 200: data = response.json() print(data)
POST 요청에서 json= 파라미터를 사용하면 Content-Type 헤더가 자동으로 설정되고, 데이터를 JSON으로 직렬화해 전송합니다.
response = requests.post(url, json={'id': 1, 'name': '홍길동'})
한줄 요약: json=, response.json()으로 JSON 처리 끝!
🛡️인증, 오류 처리, 실전 활용팁
- 기본 인증:
auth=(username, password)
또는HTTPBasicAuth
사용 - 토큰 인증:
headers={'Authorization': 'Bearer 토큰값'}
- 상태 코드로 오류 처리:
response.status_code
확인 - try-except로 네트워크 오류, 예외 상황 대비
- 대량 요청 시 Session과 Keep-Alive로 효율성 향상
- requests는 GET/POST/PUT/DELETE 등 다양한 HTTP 요청 지원
- headers, params, data, json, files 등 옵션으로 유연한 통신
- 세션, 인증, 오류 처리, JSON 파싱까지 실무에 필수
한줄 요약: requests로 모든 HTTP 통신을 쉽고 강력하게!
- requests는 파이썬 HTTP 통신의 표준 라이브러리
- GET, POST, PUT, DELETE 등 다양한 요청과 데이터 전송 지원
- 헤더, 세션, 인증, JSON 파싱 등 실무 기능까지 완벽 지원
도움이 되셨다면 공감♥ 눌러주세요!
파이썬 Requests HTTP 통신, 이제 완벽하게 이해하셨나요? 다음 글에서는 비동기 HTTP 통신, 웹 크롤링, 실전 API 자동화 등 더 깊이 있는 내용을 다룰 예정입니다. 궁금한 점이나 추가 질문은 댓글로 남겨주세요! 구독과 알림 설정도 잊지 마세요.
#파이썬Requests #HTTP통신 #GET요청 #POST요청 #헤더 #세션 #인증 #JSON파싱 #API #파이썬2025
'IT silo' 카테고리의 다른 글
파이썬 Selenium 자동화 완전정복: 실전 웹 브라우저 자동화부터 크롤링까지! (2) | 2025.07.01 |
---|---|
파이썬 BeautifulSoup 웹크롤링 완전정복: 실전 예제와 꿀팁 총정리! (2) | 2025.07.01 |
파이썬 Matplotlib 그래프 그리기 완벽 가이드: 실전 예제와 커스터마이징 꿀팁! (0) | 2025.07.01 |
파이썬 Pandas 데이터 분석 완전정복: 실전 활용법과 최신 트렌드 한눈에! (1) | 2025.07.01 |
파이썬 NumPy 배열 연산 완전정복: 브로드캐스팅, 사칙연산, 행렬 곱까지! (1) | 2025.07.01 |