요청을 사용하여 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!