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

标签 python http

我得到了作为字符串的整个 HTTP 响应,但我只想提取正文。

我不想使用外部库或重新实现 header 解析。

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

<?xml version='1.0'?>
<methodResponse>
<params>
<param>
<value><boolean>0</boolean></value>
</param>
</params>
</methodResponse>
</code>

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

我仍然从像对象 data = stream.read() 这样的流中读取数据,所以可以使用流的解决方案也是可以接受的。

第二次更新,是的,这是一个 XMLRPC 响应,但我正在使用不同的传输方式,所以我不能使用 httplib 来解析它,主要是因为 httplib 已损坏并且不接受字符串或用于解析的流。

第三次更新,双换行符可以是\r\n\r\n\n\n,具体取决于服务器。

所以要明确一点:输入是一个应该包含 XMLRPC 响应的 HTTP 响应,输出必须是响应。它不必解析 XML,但必须能够从响应中正确提取 XML。

最佳答案

基于 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

关于python - 如何在 Python 中从包含整个响应的字符串中获取 http 响应的主体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8474745/

相关文章:

python - 当集合 {B} 中的任何线程正在运行时,阻塞一个线程 R

python - 如何使用 f 字符串遍历数据帧?

javascript - 检查 URL 是否在 Javascript 中损坏

objective-c - NSURLConnection/CFURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9813)

python - 解析由标签分隔的部分

Python- bottle - cookies keep changing

python - 如何自定义 FastAPI 请求体文档

C 套接字 : recv(. ..) 未返回正确的字节

http - 使用来自文件的发布数据向 cURL 发送请求

json - 如何使用 REST/JSON/GET/POST 从我的 Node 服务器访问我的 couchdb?