>  기사  >  백엔드 개발  >  Requests\'PreparedRequest를 사용하여 Python에서 원시 HTTP 요청을 미리 보는 방법은 무엇입니까?

Requests\'PreparedRequest를 사용하여 Python에서 원시 HTTP 요청을 미리 보는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-23 15:46:02819검색

How to Preview Raw HTTP Requests in Python Using Requests' PreparedRequest?

요청을 사용하여 Python에서 원시 HTTP 요청 인쇄

요청 모듈로 작업할 때 원시 HTTP 요청을 검사하는 것이 유익한 상황에 직면할 수 있습니다. HTTP 요청이 서버로 전송됩니다. 여기에는 헤더뿐만 아니라 요청 줄과 콘텐츠도 포함됩니다.

PreparedRequest를 사용하는 솔루션:

버전 1.2.3부터 요청에 ReadyRequest 개체가 도입되었습니다. 이 객체는 여기에 설명된 대로 "서버로 전송될 정확한 바이트"를 나타냅니다: https://requests.readthedocs.io/en/latest/advanced/prepared-requests-and-api/

원시 HTTP 요청을 예쁜 형식으로 인쇄하려면 다음과 같이 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):
    """
    Formats and prints the prepared request in a readable manner.
    """
    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)

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

a=1&b=2</code>

이렇게 하면 요청 라인, 헤더 및 요청 본문이 시각적으로 보기 좋은 형식으로 표시됩니다.

참고: Pretty_print_POST 함수에 사용된 형식은 가독성을 위해 설계되었으며 전송된 실제 요청과 약간 다를 수 있습니다.

준비된 요청을 검사한 후 다음을 진행할 수 있습니다. 다음과 같이 요청 세션을 사용하여 실제 요청을 보냅니다.

<code class="python">s = requests.Session()
s.send(prepared)</code>

준비된 요청 및 API와 같은 고급 기능에 대한 자세한 내용은 요청 문서(https://requests.readthedocs.io/)를 참조하세요. ko/latest/advanced/prepared-requests-and-api/

위 내용은 Requests\'PreparedRequest를 사용하여 Python에서 원시 HTTP 요청을 미리 보는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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