>백엔드 개발 >파이썬 튜토리얼 >디버깅을 위해 Python에서 HTTP 요청을 캡처하는 방법은 무엇입니까?

디버깅을 위해 Python에서 HTTP 요청을 캡처하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-23 06:27:11906검색

How to Capture HTTP Requests in Python for Debugging?

문제 해결을 위해 Python에서 HTTP 요청 캡처

HTTP 오류가 발생하면 특히 외부 지원에 자세한 요청 정보가 필요한 경우 실망스러울 수 있습니다. 이 문서에서는 요청 라이브러리를 사용하여 Python 애플리케이션에서 보낸 전체 HTTP 요청을 캡처하는 방법을 설명합니다. 최신 버전의 Requests에서 로그인을 활성화하면 요청의 헤더, 데이터 및 응답에 대한 귀중한 통찰력을 얻을 수 있습니다.

요청 로깅 활성화

Requests는 Python 로깅 모듈을 활용하여 로깅의 자세한 정도를 구성합니다. 로깅을 활성화하려면 다음과 같이 코드를 수정하세요.

import logging

# Enable debugging at http.client level
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)

# Set logging level for requests.packages.urllib3
requests_log = logging.getLogger("requests.packages.urllib3")
requests_log.setLevel(logging.DEBUG)
requests_log.propagate = True

데모

로깅을 활성화한 후 httpbin.org와 같은 공개 API에 대한 GET 요청을 실행할 수 있습니다.

import requests

requests.get('https://httpbin.org/headers')

출력 예

로깅 출력에는 다음과 같은 귀중한 정보가 포함됩니다. request:

INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): httpbin.org
send: 'GET /headers HTTP/1.1\r\nHost: httpbin.org\r\nAccept-Encoding: gzip, deflate, compress\r\nAccept: */*\r\nUser-Agent: python-requests/1.2.0 CPython/2.7.3 Linux/3.2.0-48-generic\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
header: Content-Type: application/json
header: Date: Sat, 29 Jun 2013 11:19:34 GMT
header: Server: gunicorn/0.17.4
header: Content-Length: 226
header: Connection: keep-alive
DEBUG:requests.packages.urllib3.connectionpool:"GET /headers HTTP/1.1" 200 226

출력에는 헤더와 응답 본문의 처음 1024바이트를 포함한 전체 요청이 표시됩니다. 이 정보는 HTTP 오류의 원인을 식별하고 외부 지원 팀과 통신하는 데 매우 중요할 수 있습니다.

위 내용은 디버깅을 위해 Python에서 HTTP 요청을 캡처하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.