HTTP响应未被操纵

时间:2018-02-05 10:16:07

标签: python-3.x http httpresponse

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

res = h.getresponse()

我正在收集变量中的响应。

 print(res.msg)
 print(res.status)
 print(res.read())

之后我试图通过

打印回复
  text=res.read().decode("utf-8")  

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

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

但是这样做时,解码后的响应不会存储在变量中。如果我在打印后对文本进行打印(res.read()),它什么都不给我

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

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

TextField[][] fields = new TextField[9][9]; {
    for (Y=0;Y<9;Y++) {
        XPosition=0;
        for (X=0;X<9;X++) {

                fields[X][Y] = new TextField(1);
                fields[X][Y].setColumns(1);
                fields[X][Y].setBounds(XPosition, YPosition ,32, 32);
                frame.getContentPane().add(fields[X][Y]);

                XPosition=XPosition+32;
            }
        YPosition = YPosition+32;
    }
}

它给了我所需的O / P.但我希望他们两个都能工作。那么,有没有办法这样做。

2 个答案:

答案 0 :(得分:1)

如果您执行res.read(),它会在print语句中读取响应的内容。在第二次执行时,除非您回头或重新执行请求,否则无法再次阅读。

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

答案 1 :(得分:0)

或者您可以尝试以下方式。

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