HTTP 响应未被操纵

HTTP response not being manipulated

我使用以下行发出了 HTTP 请求。

h.request('POST', uri, body,headers={})

我正在将响应收集到一个变量中。

res = h.getresponse()

之后我尝试通过

打印响应
 print(res.msg)
 print(res.status)
 print(res.read())

在 3 print 语句之后,我试图通过将 res.read() 输出存储在不同的变量中以转换为字符串并进行进一步处理来修改响应。

  text=res.read().decode("utf-8")  

但是在这样做时解码的响应没有存储在变量中。如果我在 print(res.read()) 之后打印文本,它什么也没有给我

 print(res.read())
 text=res.read().decode("utf-8")
 print(text)

上面的输出只打印了第一条打印语句。如果我删除第一条语句并执行以下操作。

  text=res.read().decode("utf-8")
  print(text)

它给了我所需的 O/P。但我希望他们都能工作。那么,有没有什么办法呢。

如果你这样做res.read(),它会在打印语句期间读取响应的内容。在第二次执行时,您无法再次阅读,除非您返回或重新执行请求。

将第一个.read()存储在一个变量中,然后打印它。

或者你可以试试下面的方法

from  requests import request
res = request('POST', uri, data,headers={})
print(res.text)