python3如何克服python请求的最大url限制

2024-04-24 22:01:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个python应用程序在不同的端口上运行,使用网页.py. 我尝试从一个应用程序发送30000-40000个字符长的JSON字符串到另一个应用程序。JSON包含生成powerpoint报告所需的所有信息。我试着用这样的请求启用此通信:

import requests
template = <long JSON string>     
url = 'http://0.0.0.0:6060/api/getPpt?template={}'.format(template)
resp= requests.get(url).text

我注意到,在接收端,json被截断为803个字符,因此当它解码json时,我得到:

^{pr2}$

我认为这必须限制URL请求的长度,无论从哪一个网页.py或者要求,或者这是一个标准化的东西。有没有办法解决这个问题,或者我需要找到另一种方法来实现这两个python应用程序之间的通信。如果通过http发送这么长的json是不可能的,请您提出替代方案。谢谢!在


Tags: 端口字符串py信息json应用程序httpurl
1条回答
网友
1楼 · 发布于 2024-04-24 22:01:03

不要把那么多的数据放到一个URL中。大多数浏览器将URL(包括查询字符串)的总长度限制在2000个字符左右,服务器限制在8000个左右。在

请参见What is the maximum length of a URL in different browsers?,其中引用了HTTP/1.1标准RFC7230

Various ad hoc limitations on request-line length are found in practice. It is RECOMMENDED that all HTTP senders and recipients support, at a minimum, request-line lengths of 8000 octets.

您需要在请求主体中发送那么多数据。使用POST或PUT作为方法。在

requests库本身对URL长度没有任何限制;它将URL发送到服务器而不截断它。是您的服务器在这里截断了它,而不是给您一个414 URI Too Long状态代码。在

相关问题 更多 >