如何阅读原始http帖子STRING。我找到了几个用于读取帖子的解析版本的解决方案,但是我正在处理的项目提交了一个没有标题的原始xml有效负载。所以我试图找到一种方法来读取帖子数据而不将其解析为一个键=>值数组。
答案 0 :(得分:19)
self.rfile.read(int(self.headers.getheader('Content-Length')))
将原始HTTP POST数据作为字符串返回。
打破它:
self.headers.getheader('Content-Length')
以字符串形式返回内容长度(标题的值)。 self.rfile.read()
之前,必须将其转换为整数,因此请使用int()
函数。 另请注意,标题名称区分大小写,因此 仅指定为“内容长度”。
编辑:显然头字段不区分大小写(至少在Python 2.7.5中),我认为这是https://tools.ietf.org/html/rfc2616以来的正确行为:
每个标题字段包含 名称后跟冒号(“:”)和字段值。字段名称 不区分大小写。
答案 1 :(得分:16)
我认为self.rfile.read(self.headers.getheader('content-length'))
应该将原始数据作为字符串返回。
根据BaseHTTPRequestHandler类中的文档:
- rfile is a file object open for reading positioned at the
start of the optional input data part;
答案 2 :(得分:0)
对于python 3.7,以下代码对我有用:
<nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-dark bg-dark border-bottom box-shadow mb-3">
<div class="container">
<a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">App</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse">
<ul class="navbar-nav flex-grow-1">
<li class="nav-item">
<a class="nav-link text-light" asp-area="" asp-controller="Home" asp-action="Index">Home</a>
</li>
<li class="nav-item">
<a class="nav-link text-light" asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
</li>
</ul>
</div>
</div>
</nav>
答案 3 :(得分:0)