Lud*_*udo 0 python json web.py python-3.x python-requests
我有两个 python 应用程序使用 web.py 在不同的端口上运行。我正在尝试将 30,000-40,000 个字符范围内的 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
Run Code Online (Sandbox Code Playgroud)
我注意到在接收端,json 已被截断为 803 个字符长,因此当它解码 JSON 时,我得到:
json.decoder.JSONDecodeError: Unterminated string starting at: line 1 column 780 (char 779)
Run Code Online (Sandbox Code Playgroud)
我认为这必须限制 URL 请求的长度,来自 web.py 或请求,或者这是标准化的事情。有没有办法解决这个问题,或者我需要找到另一种方式来启用这两个 python 应用程序之间的通信。如果无法通过 http 发送这么长的 JSON,请您提出替代方案。谢谢!
不要将那么多数据放入一个 URL 中。大多数浏览器将 URL(包括查询字符串)的总长度限制在 2000 个字符左右,服务器限制在 8000 个左右。
请参阅不同浏览器中 URL 的最大长度是多少?,引用了 HTTP/1.1 标准,RFC7230:
在实践中发现了对请求行长度的各种特别限制。建议所有 HTTP 发送方和接收方至少支持 8000 个八位字节的请求行长度。
您需要在请求正文中发送那么多数据。使用 POST 或 PUT 作为方法。
该requests库本身并不放在URL长度的任何限制; 它将 URL 发送到服务器而不截断它。是你的服务器在这里截断了它,而不是给你一个414 URI Too Long状态代码。
| 归档时间: |
|
| 查看次数: |
5637 次 |
| 最近记录: |