posted by 구로공돌이 2025. 4. 23. 09:18

import requests
import csv
import time
from datetime import datetime

# API 설정
url = 'https://your-api-endpoint.com/path'  # 실제 API 주소로 변경
params = {
    'param1': 'value1',
    'param2': 'value2'
}
headers = {
    'Authorization': 'Bearer your-token',
    'X-Custom-Header1': 'value1',
    'X-Custom-Header2': 'value2'
}

# CSV 파일명
csv_file = 'api_response_log.csv'

# CSV 파일에 헤더 작성 (파일 없을 경우)
try:
    with open(csv_file, 'x', newline='') as f:
        writer = csv.writer(f)
        writer.writerow(['timestamp', 'status_code', 'elapsed_time_sec', 'error'])
except FileExistsError:
    pass

# 무한 루프 - 3분 간격으로 체크
while True:
    timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    try:
        start_time = time.time()
        response = requests.get(url, params=params, headers=headers, timeout=10)
        elapsed_time = round(time.time() - start_time, 3)
        status_code = response.status_code
        error = ''
    except Exception as e:
        elapsed_time = -1
        status_code = 'ERROR'
        error = str(e)

    # CSV에 기록
    with open(csv_file, 'a', newline='') as f:
        writer = csv.writer(f)
        writer.writerow([timestamp, status_code, elapsed_time, error])

    print(f"[{timestamp}] status: {status_code}, time: {elapsed_time}s")
    
    time.sleep(180)  # 3분 대기