如何在Python中从包含整个响应的字符串中获取http响应的主体?

sor*_*rin 2 python http

我把整个HTTP响应作为一个字符串,但我想只提取正文.

我宁愿不使用外部库或重新实现头解析.

Content-Type: text/xml
Content-Length: 129

<?xml version='1.0'?>
<methodResponse>
<params>
<param>
<value><boolean>0</boolean></value>
</param>
</params>
</methodResponse>
</code>
Run Code Online (Sandbox Code Playgroud)

更新:如果不明显,我确实从URL以外的其他来源获取数据,因此任何尝试使用需要和URL的内容都是无用的.

我仍然从类似对象的流中读取数据data = stream.read(),因此也可以使用可以使用流的解决方案.

第二次更新,是的,这是一个XMLRPC响应,但它是我正在使用不同的传输,所以我不能使用httplib来解析它,主要是因为httplib被破坏,不接受字符串或流进行解析.

第三次更新,双换行可以是\r\n\r\n\n\n基于服务器.

所以说清楚:输入是一个HTTP response that is supposed to contain an XMLRPC response and the output has to be the response.它不必解析XML,但必须能够从响应中正确提取XML.

bog*_*dan 5

基于Michal解决方案,但这包括和必要的修复:

def strip_http_headers(http_reply):
    p = http_reply.find('\r\n\r\n')
    if p >= 0:
        return http_reply[p+4:]
    return http_reply
Run Code Online (Sandbox Code Playgroud)