如何阅读原始 http 帖子字符串。我找到了几种用于阅读帖子的解析版本的解决方案,但是我正在处理的项目提交了一个没有标题的原始 xml 有效负载。因此,我试图找到一种方法来读取帖子数据,而无需将其解析为 key => value 数组。
问问题
18541 次
4 回答
24
self.rfile.read(int(self.headers.getheader('Content-Length')))
将原始 HTTP POST 数据作为字符串返回。
分解它:
- 标头“Content-Length”指定 HTTP POST 数据包含多少字节。
self.headers.getheader('Content-Length')
将内容长度(标头的值)作为字符串返回。- 在作为参数传递给 之前,必须将其转换为整数
self.rfile.read()
,因此请使用该int()
函数。
另外,请注意标头名称区分大小写,因此必须仅将其指定为“Content-Length”。
编辑:显然标题字段不区分大小写(至少在 Python 2.7.5 中),我认为这是正确的行为,因为https://www.rfc-editor.org/rfc/rfc2616状态:
每个标头字段由一个名称后跟一个冒号(“:”)和字段值组成。字段名称不区分大小写。
于 2014-01-02T09:34:14.990 回答
20
我认为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;
于 2013-07-26T18:33:40.417 回答