Request 라이브러리 사용방법

Request 라이브러리 사용방법

Python
Flask
Request 라이브러리 사용방법
Author

gabriel yang

Published

October 8, 2024


Python의 requests 라이브러리는 HTTP 요청을 간편하게 보내고 응답을 처리할 수 있도록 도와주는 라이브러리입니다. 이를 통해 웹 API와 상호작용하거나 웹 페이지를 크롤링하는 등의 작업을 쉽게 수행할 수 있습니다. 이 글에서는 requests 라이브러리의 기본 사용법과 다양한 HTTP 요청 방법을 설명하겠습니다.

requests 라이브러리 설치

먼저, requests 라이브러리를 설치해야 합니다. pip를 사용하여 간단하게 설치할 수 있습니다.

pip install requests

기본 사용법

1. HTTP GET 요청

GET 요청은 서버로부터 데이터를 조회할 때 사용합니다. requests.get() 메서드를 사용하여 GET 요청을 보낼 수 있습니다.

import requests

# GET 요청
response = requests.get('https://jsonplaceholder.typicode.com/posts')

# 응답 상태 코드 확인
print(f"Status Code: {response.status_code}")

# 응답 데이터 확인
if response.status_code == 200:
    data = response.json()  # JSON 형식의 데이터 변환
    print(data)
else:
    print("Failed to retrieve data")

2. HTTP POST 요청

POST 요청은 서버에 데이터를 전송할 때 사용합니다. requests.post() 메서드를 사용하여 POST 요청을 보낼 수 있습니다.

import requests

# POST 요청 데이터
payload = {
    'title': 'foo',
    'body': 'bar',
    'userId': 1
}

# POST 요청
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=payload)

# 응답 확인
if response.status_code == 201:
    print("Data created successfully:", response.json())
else:
    print("Failed to create data")

3. HTTP PUT 요청

PUT 요청은 기존의 데이터를 업데이트할 때 사용됩니다. requests.put() 메서드를 사용하여 PUT 요청을 보낼 수 있습니다.

import requests

# PUT 요청 데이터
payload = {
    'id': 1,
    'title': 'foo updated',
    'body': 'bar updated',
    'userId': 1
}

# PUT 요청
response = requests.put('https://jsonplaceholder.typicode.com/posts/1', json=payload)

# 응답 확인
if response.status_code == 200:
    print("Data updated successfully:", response.json())
else:
    print("Failed to update data")

4. HTTP DELETE 요청

DELETE 요청은 서버에서 특정 데이터를 삭제할 때 사용합니다. requests.delete() 메서드를 사용하여 DELETE 요청을 보낼 수 있습니다.

import requests

# DELETE 요청
response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')

# 응답 확인
if response.status_code == 200:
    print("Data deleted successfully")
else:
    print("Failed to delete data")

요청 파라미터 및 헤더

1. 쿼리 파라미터 추가

GET 요청 시 쿼리 파라미터를 추가하려면 params 매개변수를 사용합니다.

import requests

# 쿼리 파라미터
params = {
    'userId': 1
}

# GET 요청
response = requests.get('https://jsonplaceholder.typicode.com/posts', params=params)

# 응답 확인
if response.status_code == 200:
    print(response.json())

2. 헤더 추가

HTTP 요청에 사용자 정의 헤더를 추가하려면 headers 매개변수를 사용합니다.

import requests

# 헤더
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your_api_token'
}

# GET 요청
response = requests.get('https://jsonplaceholder.typicode.com/posts', headers=headers)

# 응답 확인
if response.status_code == 200:
    print(response.json())

오류 처리

HTTP 요청 시 오류를 처리하는 방법도 중요합니다. tryexcept 블록을 사용하여 예외를 처리할 수 있습니다.

import requests

try:
    response = requests.get('https://jsonplaceholder.typicode.com/posts/1000')
    response.raise_for_status()  # 상태 코드가 4xx 또는 5xx일 경우 예외 발생
except requests.exceptions.HTTPError as err:
    print(f"HTTP error occurred: {err}")
except Exception as err:
    print(f"An error occurred: {err}")
else:
    print(response.json())