请求模块是否会截断标头?

请求模块是否会截断标头?

问题内容

我正在尝试使用相当长(1017 个字符)的承载令牌向我的 API 发出 POST 请求以进行授权。

无论我尝试什么,当我启动请求时,我都会收到一条错误消息,指出位置 512 中的 u2026 (水平省略号)无法使用“latin-1”编码进行编码。由于我找不到我指定的标头的任何问题(或省略号),我唯一的解释是请求模块在内部默默地截断了我的令牌。难道是这样吗?可以禁用吗?还有其他解决方法吗?

正确答案

不,它不会截断标头。您可以通过运行打印所有收到的请求的 localhost http 服务器来查看这一点。以下是使用 2000 个字符标记的示例。

# from https://gist.github.com/mdonkers/63e115cc0c79b4f6b8b3a6b797e485c7from http.server import basehttprequesthandler, httpserverimport loggingclass 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,path: %sheaders:%sbody:%s",                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 requestsimport randomimport stringtoken = ''.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:8080User-Agent: python-requests/2.31.0Accept-Encoding: gzip, deflate, brAccept: */*Connection: keep-alivetoken: CrJlFIgJbvNdpTFPvkvCpaCPmugqMbjCUOYJaCCoibZdLfrEmLRDyxXiABGqHPTpkDYXznIWyVHwmThzBbzIShumCnRXzQveOrSCAgfYWsfNSQDKGRvsTLnwCAWuVofumJPIhJQgQibpVJPQzqjncqjDbbHVjHidOJievmATjRexUPtVtkezuMaifyNkPiMPJwwoofurbMJyueoKKdnDuTUxhTrryuuMSUYhoRjVIvtxtBdpIBjvrRcDFbLZtQXSBwcqpuSRWfnNMjllxebGylOpGEqsfQJtfzkUbtJgbSvzuolDcyXvVjVTqnFakPPGRojYVBioUsllKABIjqzzZblTncrxKYjPSTgzoBIPnjcInWYWBsKXkRoRZbVFJnaEERnXjNTMkqGfqMDuADdGXUASRTOUsSDNcpRUzMwwWVhjQEWIpqtrDrxazIkvcoGwERSFDyUgGZFtAiWTkiBiwKmcFbwYkZXIJBWGvXJAVylHvMcYrgyVYycbbwabTRAbviddMQCopTZLgbriyZTMvepQOWabQaVdMRGeeZUzOrLXiqjnulhyNWQOkOgTVVZCNTavrVnJJtBGPMDqzDvcenXziMRIQeXmvyuenZnTDgTSWSAMMPEPwHYPHKzbjLQspeeYSETSPfgCfoGWattjpnghHJgvarBSLkwwLYfgZhjejobPXRiVZLdzIXhjXSsomeEwAsIUOgcuKBNIOuyZGZVGTeqYMhoSRJHtfnLWJQIgyDbppALRMmZtAIrerBgNMeDueanSZmogaRNsrQVjIlWnSjqAjEWRtkdmRXoIQWkAYZniMjXOAfBDnQnUoWuEFQRvbDxCFlwdBnjJDFYaWhHLPYDzLzZOfZtJqVEucAujDXBQhTtXXgnhSHrnCGuWsTzTDUzmKbIDaYdPTmVMDArvufdfKXLUbriqvrJBMVoTXltcnCpqEELnnYKfgDfWgLCDHRaqJlkiZYUIANHsIrZxhFEJTpsCCwOMwaqjNQtgDDWfWseOgnwcLUfGzQUKyayNdkwXEOCNsWoDfHGEfNatWvdNeiMTlXiztljvmXLDgJqzIwlqnkXmnVkPtsUJiJbieDYYDALTLNQNHbQjxuiquCHQscKViGcAgVCJZqoZFhzDtuDRewTYHomvpttxoTTRePRxYoGFDIRUBcTlLhJnouqNjQgZDaPdvyWSLIxddmYYNUbKoKVWNwfYQsFQgoVsSFSboBgIvJjkxMnifwdDqkNJAcZxQYcwhUUbDwCyYbMSNmpGYaJlxeNUlcrLWXSrzAtAfblXtnCUzpnOJVYIsGONvdZyJIDwGdbaXsGZtILdPFTanTIhkoPUzDCjdaEslDXCqcaCwjIUKJMEiileCiIGASLyFYFLkKBHepbndgmzeJQqEKycchmquNLGoVTJRPPwFBBRyzoEXylieyAUihLHHulYFJIWKXayiwkqIWjPKxmHaHUWanrzMbiHaMYdubXxkYAANJbNKvIWjZhheFMSOeIPogikXHTspixWKdFTZWWOKqsahTkFKJzrmUtBtqoYlXSjBErsbkbzJOtuXAeXHbKZsekmmUohgOAdwaTVJgQLsYRIzIHnhErjKYEViADXfdXncenufRJDmAkEcjpqpxmFKdQmtqKwlUskVtgBAeVwnOTxdUnucxOcdyDuHoWAntZculQybCDYDEuqnzzjRklcGgAsNkyogLeZCRDSNWhQJCEQoiSChtAFWpmmzAjlhEDOnTzJyIUCzdbbPjhuDynkAuCggemjZIuisiVqgtJirqrbQeFlWckKVWsjIURcpeyGhQXzcQBQraqMJgBUafQyJiCcOefBrvwJOqyARmUZnunpwkBlDytgwnwbBhdTUfyfUYeJjbDMDKiIYSOcyosmZvINlUYUuPhkkyojtYOzYtSFCdwTwxFJcqCDOTxyalYkvNYDvuaQKFwWIQfkQAXiaoDQYREuhyntQBDCJohSqcdjZntuwgOVCvOPyJYMSNzksVDxContent-Length: 11Body:hello world

登录后复制

以上就是请求模块是否会截断标头?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2211887.html

(0)
上一篇 2025年2月26日 05:02:08
下一篇 2025年2月24日 16:50:51

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • PyCharm社区版性能如何?够用吗?

    PyCharm作为一款著名的Python集成开发环境(IDE),其社区版是免费提供给开发者使用的版本,那么PyCharm社区版的性能如何?其是否足够满足开发需求?让我们来通过具体的代码示例来探讨一下这个问题。 首先,让我们从PyCharm社…

    2025年2月26日
    200
  • PyCharm密钥注册教程汇总

    PyCharm是一款功能强大的Python集成开发环境(IDE),它的敏捷开发环境可以让程序员更加高效地编写Python代码。PyCharm的使用需要激活,而激活方式就是通过注册密钥来实现。本文将介绍PyCharm密钥注册的详细教程,并提供…

    2025年2月26日
    200
  • PyCharm与TensorFlow集成教程分享

    PyCharm与TensorFlow是许多数据科学家和机器学习工程师常用的工具。PyCharm是一款功能强大的Python集成开发环境(IDE),而TensorFlow则是谷歌推出的开源机器学习框架,被广泛应用于各种深度学习任务中。 在本教…

    2025年2月26日
    200
  • PyCharm解释器安装步骤详解:让你成为Python开发高手

    PyCharm是广受欢迎的Python集成开发环境(IDE),它在Python开发领域中具有非常强大的功能和使用性。其中,安装解释器是PyCharm开发环境的重要一步,本文将详细介绍PyCharm解释器安装的步骤,并提供具体的代码示例,帮助…

    2025年2月26日
    200
  • 快速了解PyCharm专业版激活技巧

    快速了解PyCharm专业版激活技巧,需要具体代码示例 PyCharm是一款功能强大的Python集成开发环境(IDE),其专业版拥有更多高级功能,但需要购买激活才能使用。有时候我们可能需要快速激活PyCharm专业版,下面将介绍一些技巧以…

    2025年2月26日
    200
  • 一分钟搞定PyCharm专业版激活

    由于激活PyCharm专业版需要购买许可证,因此激活过程并非只需一分钟就能完成。激活PyCharm专业版的过程中,通常需要使用许可证密钥和激活码。如果您拥有合法的许可证密钥和激活码,可以通过以下步骤来激活PyCharm专业版: 打开PyCh…

    2025年2月26日
    200
  • PyCharm新手指南:如何创建新项目

    PyCharm是一款功能强大的Python集成开发环境(IDE),它提供了许多便捷的功能帮助开发人员快速高效地编写Python代码。对于初学者来说,掌握PyCharm的基本用法是非常重要的。本文将针对PyCharm新手用户,介绍如何在PyC…

    2025年2月26日
    200
  • scipy库安装失败的原因及解决方案

    scipy库安装失败的原因及解决方案,需要具体代码示例 在进行Python科学计算时,scipy是一个非常常用的库,它提供了许多用于数值计算、优化、统计和信号处理的功能。然而,在安装scipy库时,有时会遇到一些问题,导致安装失败。本文将探…

    2025年2月26日
    200
  • PyCharm解释器安装教程:从零开始搭建Python开发环境

    PyCharm解释器安装教程:从零开始搭建Python开发环境 在进行Python开发工作时,一个良好的开发环境是非常重要的。PyCharm作为一款功能强大的Python集成开发环境(IDE),为开发者提供了丰富的工具和功能,可以极大提高开…

    2025年2月26日
    200
  • PyCharm主题推荐:美化界面,让编程更具乐趣

    PyCharm是一款功能强大的集成开发环境(IDE),专为Python开发者而设计。它拥有丰富的功能和可定制性,使得编程变得更加高效和愉快。在使用PyCharm进行编程时,界面的主题选择也是非常重要的,一个美观、舒适的界面可以让编程过程更加…

    2025年2月26日
    200

发表回复

登录后才能评论