請求模組是否會截斷標頭?
我正在嘗試使用相當長(1017 個字元)的承載令牌向我的 API 發出 POST 請求以進行授權。
無論我嘗試什麼,當我啟動請求時,我都會收到一條錯誤訊息,指出位置 512 中的 \u2026
(水平省略號)無法使用「latin-1」編碼進行編碼。由於我找不到我指定的標頭的任何問題(或省略號),我唯一的解釋是請求模組在內部默默地截斷了我的令牌。難道是這樣嗎?可以禁用嗎?還有其他解決方法嗎?
正確答案
不,它不會截斷標頭。您可以透過執行列印所有收到的請求的 localhost http 伺服器來查看這一點。以下是使用 2000 個字元標記的範例。
# from https://gist.github.com/mdonkers/63e115cc0c79b4f6b8b3a6b797e485c7 from http.server import basehttprequesthandler, httpserver import logging class s(basehttprequesthandler): def _set_response(self): self.send_response(200) self.send_header('content-type', 'text/html') self.end_headers() def do_post(self): content_length = int(self.headers['content-length']) post_data = self.rfile.read(content_length) logging.info("post request,\npath: %s\nheaders:\n%s\n\nbody:\n%s\n", str(self.path), str(self.headers), post_data.decode('utf-8')) self._set_response() self.wfile.write("post request for {}".format(self.path).encode('utf-8')) def run(server_class=httpserver, handler_class=s): logging.basicconfig(level=logging.info) server_address = ('', 8080) httpd = server_class(server_address, handler_class) try: httpd.serve_forever() except keyboardinterrupt: pass httpd.server_close() if __name__ == '__main__': run()
在本機上運行它,然後使用請求來發布請求:
import requests import random import string token = ''.join(random.choices(string.ascii_letters, k=2000)) requests.request('post', 'http://localhost:8080', headers={'token': token}, body='hello world')
產生以下輸出:
INFO:root:POST request, Path: / Headers: Host: localhost:8080 User-Agent: python-requests/2.31.0 Accept-Encoding: gzip, deflate, br Accept: */* Connection: keep-alive token: CrJlFIgJbvNdpTFPvkvCpaCPmugqMbjCUOYJaCCoibZdLfrEmLRDyxXiABGqHPTpkDYXznIWyVHwmThzBbzISh umCnRXzQveOrSCAgfYWsfNSQDKGRvsTLnwCAWuVofumJPIhJQgQibpVJPQzqjncqjDbbHVjHidOJievmATjRexUPtVtke zuMaifyNkPiMPJwwoofurbMJyueoKKdnDuTUxhTrryuuMSUYhoRjVIvtxtBdpIBjvrRcDFbLZtQXSBwcqpuSRWfnNMjll xebGylOpGEqsfQJtfzkUbtJgbSvzuolDcyXvVjVTqnFakPPGRojYVBioUsllKABIjqzzZblTncrxKYjPSTgzoBIPnjcIn WYWBsKXkRoRZbVFJnaEERnXjNTMkqGfqMDuADdGXUASRTOUsSDNcpRUzMwwWVhjQEWIpqtrDrxazIkvcoGwERSFDyUgGZ FtAiWTkiBiwKmcFbwYkZXIJBWGvXJAVylHvMcYrgyVYycbbwabTRAbviddMQCopTZLgbriyZTMvepQOWabQaVdMRGeeZU zOrLXiqjnulhyNWQOkOgTVVZCNTavrVnJJtBGPMDqzDvcenXziMRIQeXmvyuenZnTDgTSWSAMMPEPwHYPHKzbjLQspeeY SETSPfgCfoGWattjpnghHJgvarBSLkwwLYfgZhjejobPXRiVZLdzIXhjXSsomeEwAsIUOgcuKBNIOuyZGZVGTeqYMhoSR JHtfnLWJQIgyDbppALRMmZtAIrerBgNMeDueanSZmogaRNsrQVjIlWnSjqAjEWRtkdmRXoIQWkAYZniMjXOAfBDnQnUoW uEFQRvbDxCFlwdBnjJDFYaWhHLPYDzLzZOfZtJqVEucAujDXBQhTtXXgnhSHrnCGuWsTzTDUzmKbIDaYdPTmVMDArvufd fKXLUbriqvrJBMVoTXltcnCpqEELnnYKfgDfWgLCDHRaqJlkiZYUIANHsIrZxhFEJTpsCCwOMwaqjNQtgDDWfWseOgnwc LUfGzQUKyayNdkwXEOCNsWoDfHGEfNatWvdNeiMTlXiztljvmXLDgJqzIwlqnkXmnVkPtsUJiJbieDYYDALTLNQNHbQjx uiquCHQscKViGcAgVCJZqoZFhzDtuDRewTYHomvpttxoTTRePRxYoGFDIRUBcTlLhJnouqNjQgZDaPdvyWSLIxddmYYNU bKoKVWNwfYQsFQgoVsSFSboBgIvJjkxMnifwdDqkNJAcZxQYcwhUUbDwCyYbMSNmpGYaJlxeNUlcrLWXSrzAtAfblXtnC UzpnOJVYIsGONvdZyJIDwGdbaXsGZtILdPFTanTIhkoPUzDCjdaEslDXCqcaCwjIUKJMEiileCiIGASLyFYFLkKBHepbn dgmzeJQqEKycchmquNLGoVTJRPPwFBBRyzoEXylieyAUihLHHulYFJIWKXayiwkqIWjPKxmHaHUWanrzMbiHaMYdubXxk YAANJbNKvIWjZhheFMSOeIPogikXHTspixWKdFTZWWOKqsahTkFKJzrmUtBtqoYlXSjBErsbkbzJOtuXAeXHbKZsekmmU ohgOAdwaTVJgQLsYRIzIHnhErjKYEViADXfdXncenufRJDmAkEcjpqpxmFKdQmtqKwlUskVtgBAeVwnOTxdUnucxOcdyD uHoWAntZculQybCDYDEuqnzzjRklcGgAsNkyogLeZCRDSNWhQJCEQoiSChtAFWpmmzAjlhEDOnTzJyIUCzdbbPjhuDynk AuCggemjZIuisiVqgtJirqrbQeFlWckKVWsjIURcpeyGhQXzcQBQraqMJgBUafQyJiCcOefBrvwJOqyARmUZnunpwkBlD ytgwnwbBhdTUfyfUYeJjbDMDKiIYSOcyosmZvINlUYUuPhkkyojtYOzYtSFCdwTwxFJcqCDOTxyalYkvNYDvuaQKFwWIQ fkQAXiaoDQYREuhyntQBDCJohSqcdjZntuwgOVCvOPyJYMSNzksVDx Content-Length: 11 Body: hello world
以上是請求模組是否會截斷標頭?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Linux終端中查看Python版本時遇到權限問題的解決方法當你在Linux終端中嘗試查看Python的版本時,輸入python...

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

在使用Python的pandas庫時,如何在兩個結構不同的DataFrame之間進行整列複製是一個常見的問題。假設我們有兩個Dat...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Uvicorn是如何持續監聽HTTP請求的? Uvicorn是一個基於ASGI的輕量級Web服務器,其核心功能之一便是監聽HTTP請求並進�...

本文討論了諸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和請求等流行的Python庫,並詳細介紹了它們在科學計算,數據分析,可視化,機器學習,網絡開發和H中的用途

在Python中,如何通過字符串動態創建對象並調用其方法?這是一個常見的編程需求,尤其在需要根據配置或運行...
