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