[파이썬] requests 테스트 환경에서의 요청 처리

이번 글에서는 Python의 requests 라이브러리를 사용하여 테스트 환경에서의 요청 처리에 대해 알아보겠습니다. requests는 HTTP 요청을 보내는 인기있는 라이브러리로, 간편한 인터페이스와 다양한 기능을 제공합니다.

1. requests 설치하기

먼저, requests 라이브러리를 설치해야 합니다. 아래의 명령을 사용하여 pip를 통해 설치할 수 있습니다:

pip install requests

2. GET 요청 처리하기

GET 요청은 서버로부터 데이터를 가져오는 요청 방식입니다. requests를 사용하여 GET 요청을 처리하는 방법을 살펴보겠습니다. 아래의 코드는 “https://api.example.com/users” 주소로 GET 요청을 보내고, 받은 응답을 출력하는 예제입니다:

import requests

response = requests.get("https://api.example.com/users")
print(response.text)

위의 예제에서 requests.get 함수는 GET 요청을 보내고, 서버로부터 받은 응답 객체를 반환합니다. 이를 통해 응답의 내용은 response.text로 접근할 수 있습니다.

3. POST 요청 처리하기

POST 요청은 서버로 데이터를 보내는 요청 방식입니다. requests를 사용하여 POST 요청을 처리하는 방법을 살펴보겠습니다. 아래의 코드는 “https://api.example.com/users” 주소로 POST 요청을 보내고, 데이터를 전송하는 예제입니다:

import requests

data = {
    "name": "John Doe",
    "email": "johndoe@example.com"
}

response = requests.post("https://api.example.com/users", data=data)
print(response.json())

위의 예제에서 requests.post 함수는 POST 요청을 보내고, 데이터를 data 매개변수로 전달합니다. POST 요청의 결과로 받은 응답은 JSON 형식으로 response.json()으로 접근할 수 있습니다.

4. 헤더 설정하기

requests를 사용하여 요청할 때, 헤더를 설정할 수도 있습니다. 헤더는 요청에 대한 추가 정보를 나타내며, 예를 들어 인증 정보나 세션 ID를 포함할 수 있습니다. 아래의 코드는 “X-API-Key” 헤더를 설정하여 인증하는 예제입니다:

import requests

headers = {
    "X-API-Key": "your-api-key"
}

response = requests.get("https://api.example.com/data", headers=headers)
print(response.text)

위의 예제에서 requests.get 함수의 headers 매개변수를 사용하여 헤더를 설정합니다. 이를 통해 서버로 요청을 보낼 때 헤더가 포함되어 인증이 이루어집니다.

5. 예외 처리하기

요청을 보낼 때 에러가 발생할 수 있습니다. reqeusts를 사용하여 요청할 때 예외 처리를 통해 에러를 처리할 수 있습니다. 아래의 코드는 예외 처리를 사용하여 요청에 대한 에러를 처리하는 예제입니다:

import requests

try:
    response = requests.get("https://api.example.com/invalid_url")
    response.raise_for_status()
except requests.exceptions.HTTPError as errh:
    print("HTTP Error:", errh)
except requests.exceptions.ConnectionError as errc:
    print("Connection Error:", errc)
except requests.exceptions.Timeout as errt:
    print("Timeout Error:", errt)
except requests.exceptions.RequestException as err:
    print("Error:", err)

위의 예제에서 raise_for_status() 함수는 요청에 대한 응답 상태 코드가 에러인 경우 예외를 발생시킵니다. 따라서 try-except 구문을 사용하여 예외를 처리할 수 있습니다.

결론

이번 글에서는 Python의 requests 라이브러리를 사용한 테스트 환경에서의 요청 처리에 대해 알아보았습니다. requests를 활용하여 GET과 POST 요청을 처리하는 방법을 살펴보았으며, 헤더 설정과 예외 처리에 대해서도 다뤄보았습니다. requests가 갖고 있는 다양한 기능들을 활용하면 웹 요청을 효율적으로 처리할 수 있습니다.