> 백엔드 개발 > 파이썬 튜토리얼 > Python 요청으로 원시 HTTP 요청을 인쇄하는 방법은 무엇입니까?

Python 요청으로 원시 HTTP 요청을 인쇄하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-10-23 12:19:01
원래의
312명이 탐색했습니다.

How to Print Raw HTTP Requests with Python Requests?

Python 요청으로 원시 HTTP 요청 인쇄

요청 모듈로 작업할 때, 헤더 이상의 HTTP 요청입니다. 이 문서에서는 요청 줄, 헤더 및 콘텐츠를 포함하여 전체 HTTP 요청을 인쇄하는 방법을 살펴봅니다.

해결책: ReadyRequest 객체 사용

버전 1.2.3 이후 , 요청 모듈은 ReadyRequest 객체를 도입했습니다. 이 개체는 서버로 전송될 정확한 바이트를 나타냅니다. 이 개체를 사용하면 다음과 같이 요청을 깔끔하게 인쇄할 수 있습니다.

<code class="python">import requests

req = requests.Request('POST','http://stackoverflow.com',headers={'X-Custom':'Test'},data='a=1&b=2')
prepared = req.prepare()

def pretty_print_POST(req):
    print('{}\n{}\r\n{}\r\n\r\n{}'.format(
        '-----------START-----------',
        req.method + ' ' + req.url,
        '\r\n'.join('{}: {}'.format(k, v) for k, v in req.headers.items()),
        req.body,
    ))

pretty_print_POST(prepared)</code>
로그인 후 복사

이 코드는 전체 HTTP 요청을 사람이 읽을 수 있는 형식으로 인쇄합니다.

-----------START-----------
POST http://stackoverflow.com/
Content-Length: 7
X-Custom: Test

a=1&b=2
로그인 후 복사

ReadyRequest 객체는 트래픽 디버깅이나 분석에 유용할 수 있는 구성된 HTTP 요청에 대한 자세한 정보를 제공합니다.

실제로 요청을 보내려면 다음 코드를 사용할 수 있습니다.

<code class="python">s = requests.Session()
s.send(prepared)</code>
로그인 후 복사

위 내용은 Python 요청으로 원시 HTTP 요청을 인쇄하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿