카테고리 없음

파이썬 리퀘스트 요청 (request 모듈)

ilsancityboy 2024. 5. 2. 20:17

파이썬의 requests 모듈은 HTTP 요청을 보내고 응답을 받는 데 사용되는 라이브러리입니다. requests 모듈은 다양한 HTTP 메서드(GET, POST, PUT, DELETE )를 지원하며, 간단하고 직관적인 API를 제공하여 HTTP 클라이언트를 쉽게 구현할 수 있도록 도와줍니다.

 

1. 설치

requests 모듈은 파이썬 기본 라이브러리가 아니기 때문에 설치가 필요합니다. 다음 명령어를 사용하여 설치할 수 있습니다.

pip install requests

2. GET 요청

GET 요청을 보내려면 requests.get() 함수를 사용합니다. 예를 들어http://httpbin.org/get URLGET 요청을 보내는 코드는 다음과 같습니다.

get method로 데이터 보내기

import requests
# 1. 직접 입력해서 보내기
# url에 보내고자 하는 데이터를 입력해서 전송한다.
URL = "http://google.com?user=comp&num=42"
response = requests.get(URL)
print("status code :", response.status_code)

# 2. dict 이용하기
param = { "user" : "comp", "num" : 42 }
response = requests.get(URL, params=param)
print("status code :", response.status_code)

Response 객체

요청(request)을 보내면 응답(response)을 python 객체로 받는다. 그리고 이 Response 객체는 많은 정보와 기능을 가지고 있다. 자주쓰는 몇가지를 정리해보면

# 내가 보낸 request 객체에 접근 가능
response.request

# 응답 코드
response.status_code

# 200 (OK 코드)이 아닌 경우 에러 raise
response.raise_for_status()

# json response일 경우 딕셔너리 타입으로 바로 변환
response.json()

# content 속성을 통해 바이너리 타입으로 데이터를 받을 수 있다.
response.content

# text 속성을 통해 UTF-8로 인코딩된 문자열을 받을 수 있다.
response.text

# encoding 정보 확인
response.encoding

3. POST 요청

POST 요청을 보내려면 requests.post() 함수를 사용합니다. 예를 들어http://httpbin.org/post URLJSON 데이터를 POST 요청으로 보내는 코드는 다음과 같습니다.

 

import requests
import json

data = {'key': 'value'}
headers = {'Content-type': 'application/json'}

response = requests.post('http://httpbin.org/post', data=json.dumps(data), headers=headers)
print(response.text)

 

POST 요청에서 데이터는 data 매개변수에 딕셔너리 형태로 전달됩니다. 이 경우, 데이터는 JSON 형식으로 인코딩되어 전송됩니다. headers 매개변수는 요청 헤더를 지정하는 데 사용됩니다.

4. 파일 업로드

파일을 업로드하려면 files 매개변수를 사용하여 파일을 전송할 수 있습니다. 예를 들어http://httpbin.org/post URL로 이미지 파일을 업로드하는 코드는 다음과 같습니다.

 

import requests

url = 'http://httpbin.org/post'
files = {'file': open('image.png', 'rb')}

response = requests.post(url, files=files)
print(response.text)